SQL Server中的插入和更新以用于存储过程

时间:2012-04-11 22:49:51

标签: sql sql-server sql-server-2005 stored-procedures

我在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

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

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
相关问题