如果存在则更新,否则插入

时间:2014-01-13 13:57:37

标签: asp.net sql stored-procedures insert

我有一个包含以下列的表:

  1. PK
  2. EMPID
  3. peer_empID
  4. 数据是这样的:

    pk    empID    peer_empID
    1      5          27
    2      5          94
    3      5          67
    

    数据显示给用户,如下所示:

    enter image description here

    用户可以添加对等,修改选定的对等并删除它们。最后点击保存:

    1. 已删除的同行将被删除
    2. 更改后的同行将会更新
    3. 添加了Peers将添加
    4. ,它将存储在数据库中。

      如果更改,我必须编写要更新的查询,如果不存在则插入,如果从前端删除则删除。

      我试过了:

      IF not exists (select empID, peer_empID from assignPeers where empID = @empID and peer_empID = @peer_empID)
      
          BEGIN
              insert into assignPeers (empID, peer_empID) values (@empID, @peer_empID)
          END
      
      ELSE
          BEGIN
              update assignPeers set peer_empID = -->here is the problem.. how will I define the condition to update? <-- 
              where empID = @empID and peer_empID = @peer_empID
          END
      

      请建议我在这种情况下该怎么做?

2 个答案:

答案 0 :(得分:0)

在这种情况下,我认为您没有太多选择......您必须存储原始主键和新主键,并尝试使用SET和WHERE语句进行更新。

答案 1 :(得分:0)

IF EXISTS (SELECT 1 FROM assignPeers WHERE empID = @empID)
BEGIN
    UPDATE assignPeers set peer_empID =  @peer_empID
    WHERE empID = @empID 
END
ELSE    
    INSERT into assignPeers (empID, peer_empID) values (@empID, @peer_empID) 
END

请尝试上面的代码吗?