小编典典

SQL Server 2005,批量更新或插入

sql

我正在寻找一种对重复键Update(例如SQL Server 2005中的操作)执行插入的解决方案。此操作可能会插入或更新大量条目。SQL Server
2008有一个整洁的操作MERGE,可以很好地完成它,问题是我们只能使用SQL Server2005。
我研究了标准的解决方案,但是它们都不是很好,因为它们假定只有一个入口已更新/插入。
有谁知道在旧版SQL Server中复制MERGE行为的方法?


阅读 53

收藏
2021-04-22

共1个答案

小编典典

Alex Kuznetsov的博客包含使用语句OUTPUT子句的建议UPDATE。为了解释该博客条目中的示例(未试用):

DECLARE @updated_ids table(id int)

UPDATE table
   SET ...
OUTPUT inserted.id INTO @updated_ids
  FROM table INNER JOIN data-to-insert ON table.id = data-to-insert.id

INSERT INTO table
SELECT ...
  FROM data-to-insert
 WHERE id NOT IN (SELECT id FROM @updated_ids)
2021-04-22