把if exists也放到@sql裏面就可以了

解决方案 »

  1.   

    trydeclare @table varchar(20)
    declare @sql Nvarchar(200), @rowscount int
    set @table='test1'
    set @sql='select @rowscount = Count(*)  from '+@table+' where 条件表达式'
    EXEC sp_executesql @sql, N'@rowscount int Output',@rowscount Output
    IF(@rowscount > 0)
    ...
      

  2.   

    可以一起动态declare @table varchar(20)
    --declare @sql varchar(200)   不要变量
    set @table='test1'
    exec('
    if exists(select * from '+@table+' where 条件表达式)
       begin  
            update '+@table+' set ...  where 条件表达式
       end
       else
            insert '+@table+' ...
    ')