6
假设我有一个表,并且想要插入一行。新行的键可能已经匹配表中现有的行键,在这种情况下,我想更新现有的行。或者,它可能不存在于表中,在这种情况下应该插入新行。T-SQL是否可以使用单个快速操作进行更新/插入
执行此类操作的最有效方法是什么?我正在考虑首先执行SELECT
(可能与EXISTS
)以查看是否存在特定密钥,如果存在UPDATE
,并且如果不存在则为INSERT
。您可能需要保留一个UPDLOCK
和一个HOLDLOCK
这个组合的语句,以避免竞争条件。这似乎过于复杂和低效。
我想知道在SQL Server 2008R2中是否有更高效的方法来做到这一点。
非常好的答案,+1和接受... –