1
私は複数の更新/挿入を処理するTSQLトリガを作成する方法を研究しています。SQLトリガ複数挿入更新
複数のソースからのデータがありますが、私の目標は更新/挿入する前にそのデータを確認/修正することです。
私は、データの1行に作用するトリガを書きました。
私は、複数のデータ行を処理する方法を理解するのに苦労しています。
CREATE TRIGGER [dbo].[tr_GPTitleToGov]
ON [dbo].[GoverningPersons]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Title1 VARCHAR(15)
DECLARE @UBI VARCHAR(9)
DECLARE @ETPID CHAR(4)
DECLARE @Ident INT
SET @Title1 = (SELECT Title1 FROM INSERTED)
SET @UBI = (SELECT UBI FROM INSERTED)
SET @ETPID = (SELECT [ETPID] FROM [entity] WHERE @UBI = [entity].[UBI])
SET @Ident = (SELECT Ident FROM INSERTED)
IF ((@Title1 = 'Executor') OR (@Title1 = 'Incorporator'))
BEGIN
IF @ETPID IN ('0143', '0147', '0148', '0150', '0152', '0154')
UPDATE GoverningPersons
SET [Title1] = 'Executor',
[Title2] = NULL,
[Title3] = NULL,
[Title4] = NULL
WHERE Ident = @Ident;
ELSE
UPDATE GoverningPersons
SET [Title1] = 'Incorporator',
[Title2] = NULL,
[Title3] = NULL,
[Title4] = NULL
WHERE Ident = @Ident;
END
ELSE
UPDATE GoverningPersons
SET [Title1] = 'Governor',
[Title2] = NULL,
[Title3] = NULL,
[Title4] = NULL
WHERE Ident = @Ident;
END
私が投げているのは、フィールドを結合する場所だと思うので、データを別のテーブルのデータと照合することができます。
私はトリガーを書いたことがないので、助けていただければ幸いです。
ありがとうございます、今すぐチェックしましょう! –
私は、事件陳述書のようなものがあることは知らなかった。これは超です! –
@ E.Powell 'CASE' _expression_は値をもたらします。 'CASE' _文はありません。悲しいことに、マイクロソフトはそれを理解せず、用語を「ドキュメント」でランダムに使用しています。 – HABO