在SQL Server 插入...合併...選擇
在SQL Server 中,INSERT INTO...SELECT 語句允許您將SELECT 查詢中的資料插入目標表中。但是,當 SELECT 查詢涉及多個資料表的資料時,OUTPUT 子句無法在不同表中擷取資料。
引入 MERGE
要解決此問題,可以考慮使用合併語句。 MERGE 將 INSERT、UPDATE 和 DELETE 運算組合到單一語句中。它允許您根據特定條件有條件地對目標行執行操作。
使用 MERGE 輸出資料
要從插入表和來源表中擷取資料,您可以在 MERGE 語句中使用 OUTPUT 子句。以下範例示範如何從多個資料表插入資料並輸出Inserted.ID 和Table2.ID:
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 語句中:
以上是如何在 SQL Server INSERT 作業期間使用 MERGE 從多個表中擷取資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!