我在存储过程中有以下的语句SET @SQL='SET @='+CHAR(39)+'xxxxxxx'+CHAR(39)EXEC(@SQL)语句执行完 @ 的值为空,为什以?当然实际的语句要复杂一些,我一直得不到正确的结果就将@SQL改成这样简单,结果 @ 也没有得到正确的值,请高手指点。

解决方案 »

  1.   

    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'
    */
      

  2.   

    declare @sql varchar(1000)
    SET @SQL='declare @ varchar(100);SET @='+CHAR(39)+'xxxxxxx'+CHAR(39)+';select @'
    EXEC(@SQL)