【发布时间】:2013-06-17 12:25:46
【问题描述】:
我有一个MERGE 查询来更新数据。在不匹配的情况下,我将记录插入到源中,将输出发送到临时表。
是否也可以将匹配的记录获取到临时表中?基本上为了避免在进一步处理中重复数据,我需要有匹配记录的副本。
这是我的MERGE 命令:
MERGE Product.ProductHeaderRepository AS t
USING (SELECT GETDATE() as d, c1, c2, c3,
Name FROM Supplier.ProductHeaderImport
WHERE (BatchID = @BatchID) ) AS s
ON dbo.GetProductHeaderId(s.c1,S.c2,S.c3) <0
WHEN NOT MATCHED BY TARGET THEN
INSERT (Name, c1,c2,c3) VALUES (Name, c2,c2,c3)
OUTPUT INSERTED.iD, s.c1, s.c2, s.c3 INTO @TmpTable;
【问题讨论】:
-
尝试将
$action添加到您的OUTPUT和临时表中。我认为它已经在做你想做的事了。
标签: sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012