CREATE   PROCEDURE  SP_PDeal
  AS
declare @sql1 varchar(500)
declare @sql2 varchar(500)
declare @count1 int
set @sql1='select ''@count1''=count(*) from a'
set nocount on
begin
EXEC(@sql1)
if @count1>0
begin
set @sql2='update a set b=''c'' where UniqueID=2'
exec(@sql2)
end
end
GO

解决方案 »

  1.   

    @sql1可以执行,在查询分析器看到@count1值是2,然后@sql2就是死活不执行........
    这是为什么呢
      

  2.   

    CREATE   PROCEDURE  SP_PDeal
      AS
    declare @sql1 nvarchar(500)
    declare @sql2 nvarchar(500)
    declare @count1 int
    set @sql1='select @count1=count(*) from a'
    set nocount on
    begin
    EXEC sp_executesql @sql1, N'@count1 int output', @count1 output
    if @count1>0
    begin
    set @sql2='update a set b=''c'' where UniqueID=2'
    exec(@sql2)
    end
    end
    GO
      

  3.   

    服务器: 消息 214,级别 16,状态 2,过程 sp_executesql,行 7
    过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。它提示这个呢