1
我一直在研究如何創建一個TSQL觸發器來處理多個更新/插入。SQL觸發多個插入更新
我們有來自多個來源的數據,我的目標是在更新/插入之前驗證/更正數據。
我寫了一個觸發器,適用於單行數據。
我正在努力弄清楚如何讓它來處理多行數據。
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' _statement_。可悲的是,微軟並不理解這一點,而是在其「文檔」中隨意使用術語。 – HABO