首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-02-21 
EXEC(@SQL)能这样用吗?我在存储过程中有以下的语句SET@SQL SET@ +CHAR(39)+ xxxxxxx +CHAR(39)EXEC(@SQL

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)

热点排行