【发布时间】:2012-01-05 19:32:43
【问题描述】:
假设我有一个表格,我想插入一行。新行的键可能已经与表中现有行的键匹配,在这种情况下,我想更新现有行。或者,它可能不存在于表中,在这种情况下应该插入新行。
执行此类操作的最有效方法是什么?我想先做一个SELECT(可能是EXISTS)来查看是否存在特定的键,然后是UPDATE(如果存在)和INSERT(如果不存在)。您可能还需要为这种语句组合保留UPDLOCK 和HOLDLOCK,以避免竞争条件。这似乎过于复杂和低效。
我想知道在 SQL Server 2008R2 中是否有更有效的方法来执行此操作。
【问题讨论】:
标签: sql-server-2008 tsql sql-server-2008-r2