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