select @sql = 'select @retv=retv   from table'
  exec sp_executesql @sql, N'@retv int output',@@retv output

解决方案 »

  1.   


    --不好意思 有点小错select @sql = 'select @retv=retv   from table'
      exec sp_executesql @sql, N'@retv int output',@retv output
      

  2.   

    declare @sq nvarchar(4000)  --注意变量类型
    declare @retv int
    set @sql='select @retv=retv from table'
    exec sp_executesql @sql,N'@retv int out',@retv out
      

  3.   

    exec sp_executesql @StrEexec, N'@a int output',@retv output
    参考
    http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.9176599
      

  4.   

    --返回多个字段同理:
    declare @sq nvarchar(4000)  --注意变量类型
    declare @retv int,@re2 int,@re3 varchar(10)
    set @sql='select @retv=retv,@re2=字段2,@re3=字段3 from table'
    exec sp_executesql @sql
      ,N'@retv int out,@re2 int out,@re3 varchar(10) out',@retv out,@re2 out,@re3 out
      

  5.   

    set @strEexec='select '' + @retv + ''=retv from table'
      

  6.   

    多个字段select @sql = 'select @retv=retv,@p=p   from table'
      exec sp_executesql @sql, N'@retv int output,@p varchar(5) output',@retv output,@p output
      

  7.   

    参考联机帮助!
    sp_executesql 
    自己多写几个!就ok了!