Jas*_*den 2 performance sql-server insert merge
使用mergeoverinsert函数有什么优点/缺点吗?可在insert声明中利用'OUTPUT的”
注意: 的ON子句merge设置为1=0(始终插入)
Merge DeviceReading
Using (
--table here
) As [Source]
On (1 = 0) -- Effectively Makes this an Insert as 1 Never Matches 0
When Not Matched Then
INSERT (
[value1],
[value2]
) VALUES (
@value1,
@value2
) OUTPUT Inserted.[value1], Inserted.[value2] Into @InsertIDTable;
Run Code Online (Sandbox Code Playgroud)
MERGE有更灵活的OUTPUT。OUTPUT如果您希望客户端能够将它发送的内容与实际插入的内容(例如IDENTITY值)相匹配,可以参考合并源,这很方便。INSERT不能这样做(没有根本原因;似乎没有实现)。
我想不出任何性能差异。这些计划肯定看起来如此相似,以至于我现在无法区分。如果存在重大差异,SQL Server 可以将一种形式优化为另一种形式。