Ich habe untersucht, wie man einen TSQL-Trigger, der mehrere Update/Inserts behandeln wird erstellen.SQL-Trigger mehrere einfügen Update
Wir haben Daten aus mehreren Quellen und mein Ziel ist es, diese Daten vor dem Aktualisieren/Einfügen zu überprüfen/zu korrigieren.
Ich schrieb einen Auslöser, der für einzelne Datenzeilen funktioniert.
Ich kämpfe um herauszufinden, wie es mehrere Datenzeilen zu behandeln.
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
Ich denke, was wirft ich bin, wo die Felder zu verbinden, damit ich die Daten gegen Daten in einer anderen Tabelle überprüfen.
Ich habe noch nie zuvor einen Trigger geschrieben, also würde jede Hilfe geschätzt werden.
Danke, ich überprüfe es jetzt! –
Ich hatte keine Ahnung, dass es so etwas wie eine Fallaussage gab. Das ist super! –
@ E.Powell Ein 'CASE' _Ausdruck_ ergibt einen Wert. Es gibt keine CASE-Anweisung. Leider versteht Microsoft das nicht und verwendet die Terminologie willkürlich in ihrer "Dokumentation". – HABO