0

我在 SQL Server 中有一个这样的表:

varID(PK)    dataID(PK)  is_used
A            1           0
B            1           0

然后,如果组合存在,我将加载数据以将 is_used 更新为 1 varID/dataID,否则将其添加。

所以我必须插入/更新这些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

最简单的方法是什么?我将在存储过程中执行此操作。

4

1 回答 1

5

过程尝试更新is_used给定的密钥。如果不成功,则插入新行。请注意,我将 0 作为 is_used 的默认值 - 我认为 is_used = 1 for (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
于 2012-04-11T23:03:30.397 回答