使用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中文網其他相關文章!