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)