读书人

EXEC(@SQL)能这样用吗?解决办法

发布时间: 2012-02-21 16:26:23 作者: rapoo

EXEC(@SQL)能这样用吗?
我在存储过程中有以下的语句

SET @SQL= 'SET @= '+CHAR(39)+ 'xxxxxxx '+CHAR(39)

EXEC(@SQL)

语句执行完 @ 的值为空,为什以?当然实际的语句要复杂一些,我一直得不到正确的结果就将@SQL改成这样简单,结果 @ 也没有得到正确的值,请高手指点。

[解决办法]
declare @str varchar(100)
declare @sql nvarchar(1000)
SET @SQL= N 'SET @str= CHAR(39)+ ' 'xxxxxxx ' '+CHAR(39) '
EXEC sp_executesql @sql,N '@str varchar(100) output ',@str output
select @str

/*结果
'xxxxxxx '
*/

[解决办法]
declare @sql varchar(1000)
SET @SQL= 'declare @ varchar(100);SET @= '+CHAR(39)+ 'xxxxxxx '+CHAR(39)+ ';select @ '
EXEC(@SQL)

读书人网 >SQL Server

热点推荐