参考declare @num int,
        @sqls nvarchar(4000)
set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
exec sp_executesql @sqls,N'@a int output',@num output
select @num

解决方案 »

  1.   

    --tryCREATE PROCEDURE  list_2@text1 varchar(7),
    @text2 varchar(100),
    @text3 varchar(100),
    @listout_hz decimal outputas
    declare @select_hz nvarchar(4000)
    declare @hz decimal set @select_hz='select @hz=sum(data_ysjj) from base where 1=1'
    if @text1>''
    set @select_hz=@select_hz+' and id_wjdm like ''%'+@text1+'%'''
    if @text2>''
             set @select_hz=@select_hz+' and name_nsr like ''%'+@text2+'%'''
    if @text3>''
    set @select_hz=@select_hz+' and id_jg = '''+@text3+''''exec sp_executesql @select_hz,N'@hz decimal output',@hz outputset @listout_hz=@hz
    GO
      

  2.   

    提示错误
    过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
    我没定义过@statement这个参数啊,是不是系统自带的参数?
      

  3.   

    declare @select_hz nvarchar(4000)  --一定要用nvarchar
      

  4.   

    呵呵,问题解决了,这句没改declare @select_hz nvarchar(4000)