P. *_*kis 4 sql sql-server-2005
我正在寻找一个解决方案来执行插入,重复键更新像SQL Server 2005中的操作.此操作可能插入或更新大量条目.SQL Server 2008有一个简洁的操作MERGE可以完美地完成它,问题是我们
遇到了SQL Server 2005. 我已经研究过标准解决方案,但是所有这些都不好,因为他们认为只有一个条目更新/插入.
有没有人知道在旧版本的SQL Server中复制MERGE行为的方法?
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)
Run Code Online (Sandbox Code Playgroud)