我在我的 SQL 程序之一中有一个类似于下面的代码,
declare @rowcount int
update table1
set value = @value
where id = @id
select @rowcount = @@ROWCOUNT
if ( @rowcount = 0 )
begin
insert into table1(id, value1,value2...)
select (@id, @value1, @value2...)
end
Run Code Online (Sandbox Code Playgroud)
但它很少失败,比如一天一次等。这意味着数据存在于表中,@@rowcount 为 0,它试图插入数据和主键冲突发生。这里插入的所有值,即。id、value1、value2 等是整数。有什么想法吗?