【问题标题】:Inserts and Updates in SQL Server for a stored procedure在 SQL Server 中为存储过程插入和更新
【发布时间】:2012-04-11 22:49:50
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    程序尝试在给定密钥的情况下更新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
    

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2017-12-02
      • 2015-03-02
      相关资源
      最近更新 更多