想要得到如下的效果,该怎样实现?declare @field1 varchar(20)
declare @field2 varchar(20)
declare @sql nvarchar(200)
create table tb(field1 varchar(20),field2 varchar(20))
insert into tb select '100','200' union all 
                select '300','400'
set @sql = 'select @field1 = field1, @field2 = field2 from tb'
exec sp_executesql @sql,N'@field1 varchar(20) output',@field1 output,
                   N'@field2 varchar(20) output',@field2 output
drop table tb以上报错,提示:必须声明变量 '@field2'。

解决方案 »

  1.   

    exec sp_executesql @sql,N'@field1 varchar(20) output,@field2 varchar(20) output',@field1 output,@field2 output
      

  2.   

    一个会了,多个不会??汗。exec sp_executesql @sql,N'@field1 varchar(20) output,@field2 varchar(20) output',
                       @field2 varchar(20) output,@field2 varchar(20) output
      

  3.   


    exec sp_executesql @sql,N'@field1 varchar(20) output,@field2 varchar(20) output',@field1 output,@field2 output
      

  4.   

    exec sp_executesql @sql,N'@field1 varchar(20) output,@field2 varchar(20) output',
                       @field2 output,@field2  output