2


0

挿入トリガーでのtable1からtable2への挿入

私はSQLが初めてなので、自分の無能さを許します。

テーブル1への挿入時に、そのレコードをテーブル2に挿入するトリガーを作成しようとしています。

テーブル1は `[rps_lab_dev]。[dbo]。[Lab_Employee_Time_Off]`です

表2は `[dbo]。[Lab_Employee_Time_Off_Detail]`です。

CREATE TRIGGER updatetrig
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]

FOR INSERT

AS
...

ここからどこに行くべきかわかりません(これが正しければ、今すぐチェックするSQLがありません)。どんな方向でも大歓迎です。

2 Answer


5


SQL Serverの場合…​

CREATE TRIGGER updatetrig
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]

FOR INSERT

AS

INSERT INTO [dbo].[Lab_Employee_Time_Off_Detail] (Column1, Column2, Column3)
SELECT Column1, Column2, Column3 FROM inserted

Column1、Column2、およびColumn3を列名に置き換えるだけです。


5


INSERTのトリガーにいる間、INSERTEDと呼ばれるレコードのセットを取得します。 これを使用して、必要なアクションを実行できます。

UPDATEのトリガーを使用している場合は、2つのデータセットDELETEDおよびINSERTEDを取得します。論理的には、DELETEDは、新しいINSERTEDデータによって上書きされる古いデータです。

あなたの場合、ここでいくつかのことをしましょう。 まず、これはINSERTトリガーなので、それを呼び出しましょう。 次に、INSERTED(受信データと同じ列名を持つ)からデータを取得し、それを使用して詳細テーブルに挿入します。

CREATE TRIGGER Lab_Employee_Time_Off_InsertAction
ON [rps_lab_dev].[dbo].[Lab_Employee_Time_Off]

FOR INSERT

AS


INSERT INTO [dbo].[Lab_Employee_Time_Off_Detail] (Col01, Col02, Col03)
SELECT Col1, Col2, Col3
FROM Inserted

GO