【发布时间】:2014-01-13 13:57:36
【问题描述】:
我有一个包含以下列的表格:
- pk
- empID
- peer_empID
数据是这样的:
pk empID peer_empID
1 5 27
2 5 94
3 5 67
数据会这样显示给用户:
用户可以添加Peers,修改选中的Peer,也可以删除它们。最后点击保存:
- 已删除的 Peers 将被删除
- 将更新更改的 Peers
- 将添加已添加的 Peers
并将其存储在数据库中。
如果更改,我必须编写一个查询来更新,如果不存在则插入,如果从前端删除则删除。
我试过了:
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
请建议我在这种情况下该怎么做?
【问题讨论】:
-
这是一个很常见的场景。谷歌
UPSERT获取信息。现在大多数 RDBMS 都有这种语法。 -
您查看过
MERGE声明吗? msdn.microsoft.com/en-us/library/bb510625.aspx -
@SchmitzIT 我不知道。我去看看。
-
没关系!我得到了它。但是如何知道要删除哪些行呢?还是用户更改了数据?
标签: asp.net sql stored-procedures insert