日期:2014-05-19  浏览次数:20619 次

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)