使用 MERGE 插入临时表或表变量
在 SQL Server 中,OUTPUT 子句无法从多个表中检索数据,这使得在插入操作期间捕获特定值。不过,MERGE 语句提供了解决此问题的方法。
要使用 MERGE 将数据插入临时表或表变量:
下面是一个示例:
MERGE INTO Table3 USING ( SELECT null as col2, 110 as col3, Table1.ID as col4, Table2.Column2 as col5, Table2.Id as col6 FROM Table1 JOIN Table1Table2Link on Table1.ID=Table1Table2Link.Column1 JOIN Table2 on Table1Table2Link.Column2=Table2.ID ) AS s ON 1 = 0 -- Always not matched WHEN NOT MATCHED THEN INSERT (Column2, Column3, Column4, Column5) VALUES (s.col2, s.col3, s.col4, s.col5) OUTPUT Inserted.ID, s.col6 INTO @MyTableVar (insertedId, Table2Id);
在此示例中,MERGE 语句使用 Inserted.ID 填充临时表 @MyTableVar和Table2.ID值。 OUTPUT 子句指定这两列应输出到临时表中。
此方法允许您在插入操作期间使用 SQL Server 中 MERGE 语句的强大功能高效地捕获和处理来自不同表的数据。
以上是如何高效地将多个表中的数据插入到SQL Server中的临时表或表变量中?的详细内容。更多信息请关注PHP中文网其他相关文章!