我在SQL Server中有这样的表:
varID(PK) dataID(PK) is_used
A 1 0
B 1 0
然后我正在加载数据,如果varID/dataID
组合存在,则将is_used更新为1,否则添加它。
所以我必须插入/更新这些varID/dataID
组合。
varID(PK) dataID(PK)
B 1
C 1
因此更新的表格如下所示:
varID(PK) dataID(PK) is_used
A 1 0
B 1 1
C 1 1
最简单的方法是什么?我将在存储过程中执行此操作。
答案 0 :(得分:5)
程序尝试在给定密钥的情况下更新is_used
。如果不成功,请插入新行。注意我把0作为is_used的默认值 - 我认为(C,1)的is_used = 1是无意的。
create proc AddVarDataCombo (@varID varchar(100), @dataID int)
as
set nocount on
update ATable
set is_used = 1
where varID = @varID
and dataID = @dataID
if @@rowcount = 0
begin
insert into ATable
values (@varID, @dataID, 0)
end