在SQL Server中为存储过程插入和更新
我在SQL Server中有这样一个表:在SQL Server中为存储过程插入和更新,sql,sql-server,sql-server-2005,stored-procedures,Sql,Sql Server,Sql Server 2005,Stored Procedures,我在SQL Server中有这样一个表: varID(PK) dataID(PK) is_used A 1 0 B 1 0 然后,如果varID/dataID组合存在,我将加载要更新的数据,并将其添加到1中 因此,我必须插入/更新这些varID/dataID组合 varID(PK) dataID(PK) B 1 C 1 因此,
varID(PK) dataID(PK) is_used
A 1 0
B 1 0
然后,如果varID/dataID
组合存在,我将加载要更新的数据,并将其添加到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作为is_used的默认值-我认为is_used=1表示(C,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
过程尝试更新是否已使用
给定密钥。如果不成功,则插入新行。注:我将0作为is_used的默认值-我认为is_used=1表示(C,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