首頁 > 資料庫 > mysql教程 > SQL Server的MERGE語句如何插入資料並輸出不同資料表的多列?

SQL Server的MERGE語句如何插入資料並輸出不同資料表的多列?

Linda Hamilton
發布: 2024-12-27 10:04:14
原創
930 人瀏覽過

How Can SQL Server's MERGE Statement Insert Data and Output Multiple Columns from Different Tables?

在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 語句使用來自
  • OUTPUT 子句指定插入的ID 和Table2.ID 都應該輸出到臨時表@MyTableVar。
  • WHEN NOT MATCHED 子句確保插入數據,如果Table3 中尚不存在。

透過以這種方式使用 MERGE,我們可以插入資料並從中捕獲附加資訊在單一語句中跨多個表,包括插入的 ID。

以上是SQL Server的MERGE語句如何插入資料並輸出不同資料表的多列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板