cdu*_*dub 0 sql sql-server stored-procedures sql-server-2005
我在SQL Server中有这样的表:
varID(PK) dataID(PK) is_used
A 1 0
B 1 0
Run Code Online (Sandbox Code Playgroud)
然后,如果varID/dataID组合存在,我正在加载数据以将is_used更新为1 ,否则添加它.
所以我必须插入/更新这些varID/dataID组合.
varID(PK) dataID(PK)
B 1
C 1
Run Code Online (Sandbox Code Playgroud)
所以更新的表格如下所示:
varID(PK) dataID(PK) is_used
A 1 0
B 1 1
C 1 1
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?我将在存储过程中执行此操作.
过程尝试更新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
Run Code Online (Sandbox Code Playgroud)