我正在使用 MERGE
在表中插入或更新记录:
MERGE INTO target
USING SELECT * FROM @source
WHEN MATCHED THEN
UPDATE SET ...columns...
WHEN NOT MATCHED THEN
INSERT ...columns...
OUTPUT inserted.* INTO @insertedRecord
如果上面的语句执行更新,更新后的记录是否会插入到表变量中?
最佳答案
是的。
inserted
psuedotable 将处理进入表中的新值,无论是插入还是更新。
deleted
伪表将处理旧值,无论是删除还是更新(对于更新,它将是以前的值)。
更简洁:您也可以在合并中引用源表,例如OUTPUT @source.*
(尽管您可能需要一个别名才能使其工作)。
关于sql - 使用 MERGE 语句时输出不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41640611/