IDの列があり、もう一方は同一ではない2つのテーブルがあります。代わりに、2番目の表は、最初の表のID列の値を使用します。私は、レコードが最初のテーブルに挿入されたときに、2番目のテーブルにトリガとして挿入すると考えました。私は構文が正しいとは思わない。挿入トリガでID列の値を取得する方法SQL Server
ID列@EDVisitIdからヌルが戻されています。
ALTER TRIGGER [dbo].[trgInserterrEDVisitOriginal] ON [dbo].[errEDVisit]
AFTER INSERT
AS
--Name: Bob Avallone
--Date: 6-15-2017
--
-- The purpose of this trigger is to insert a record into errEDVisitOriginal
-- whenever a new errEDVisit is inserted.
--XXXXXXXXXX
declare @EDVisitId int
declare @SubmissionControlID INT
Select @EDVisitId = EDVisitID from inserted
SELECT @SubmissionControlID = SubmissionControlID from Inserted
Begin
Insert Into errEDVisitOriginal (EDVisitId, SubmissionControlID)
VALUES (@EDVisitId, @SubmissionControlID)
End
トリガーには大きな欠陥があります。挿入された行が1つしかないと仮定します。 1回の操作でSQL Serverの起動をトリガーします。このようなトリガは、スカラーベースではなく、ベースに設定する必要があります。 –
トリガでこれを行うのではなく、挿入手順が必要です。このプロシージャでは、OUTPUT句を使用して、新しく挿入されたすべてのID値を取得できるようにします。 –