首頁 >資料庫 >mysql教程 >如何在 SQL Server 觸發器中檢索插入的行值以進行跨表資料插入?

如何在 SQL Server 觸發器中檢索插入的行值以進行跨表資料插入?

DDD
DDD原創
2025-01-05 10:45:44692瀏覽

How to Retrieve Inserted Row Values in a SQL Server Trigger for Cross-Table Data Insertion?

在 SQL Server 觸發器中檢索插入的行值以進行跨表插入

從 aspnet_users 中的新行插入 user_id 和user_name將一個表插入另一個表,可以使用觸發器

獲取最後插入的行值

傳統上,檢索最後插入的行值涉及根據最新的date_created 選擇行,這可能不可靠。相反,SQL Server 提供了「插入」偽表,其中包含觸發插入的行資料。

觸發器實作

以下觸發器「yourNewTrigger」可以在「yourSource Table」上建立以捕獲插入

CREATE TRIGGER yourNewTrigger ON yourSourceTable
FOR INSERT
AS

INSERT INTO yourDestinationTable
        (col1, col2    , col3, user_id, user_name)
    SELECT
        'a'  , default , null, user_id, user_name
        FROM inserted

go

說明

  • 「插入」偽表提供對插入行資料的存取。
  • 欄位「 col1」和「col2」填入固定值。
  • 「col3」保持為空如果來源表中未指定。
  • 從插入的行中提取「user_id」和「user_name」。
  • 插入的值將插入到「yourDestinationTable」中。

透過利用「inserted」偽表,觸發器可以有效地檢索最後插入的行值,從而實現使用者特定的跨表插入資訊。

以上是如何在 SQL Server 觸發器中檢索插入的行值以進行跨表資料插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn