在SQL Server 中使用MERGE 插入和輸出資料
在此查詢中,我們尋求使用SELECT 語句將資料插入Table3 中並捕獲插入的ID 和另一個表中的另一個列值。由於跨表引用,使用 OUTPUT 子句的初始嘗試失敗了。
為了克服此限制,我們利用 MERGE 語句。透過使用 MERGE 語句填入 Table3,我們可以在輸出子句中利用插入資料和來源資料中的值。
這是修改後的查詢:
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,我們可以插入資料並從中捕獲附加資訊在單一語句中跨多個表,包括插入的 ID。
以上是SQL Server的MERGE語句如何插入資料並輸出不同資料表的多列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!