Schreiben eines INSERT-Triggers in SQL Server 2008: Auslösen des Einfügens von Mitarbeiterinformationen
In SQL Server 2008 können Sie Trigger verwenden, um bestimmte Aktionen auszuführen wenn Daten in einer Tabelle geändert werden. Ein solches Szenario besteht darin, das Vorhandensein von Mitarbeiterinformationen in der Employee-Tabelle beim Einfügen in die EmployeeResult-Tabelle sicherzustellen.
So erstellen Sie einen Auslöser, der Mitarbeiterdatensätze einfügt, wenn diese in der Employee-Tabelle fehlen:
CREATE TRIGGER trig_Update_Employee ON [EmployeeResult] FOR INSERT AS BEGIN -- Retrieve the inserted row data SELECT * INTO #InsertedRows FROM INSERTED; -- Check if the inserted employee exists in the Employee table SELECT COUNT(*) INTO #EmployeeCount FROM Employee WHERE Name IN (SELECT Name FROM #InsertedRows) AND Department IN (SELECT Department FROM #InsertedRows); -- Insert missing employee records IF #EmployeeCount < 1 BEGIN -- Dynamically generate the INSERT statement based on the inserted rows DECLARE @InsertStatement NVARCHAR(MAX) = 'INSERT INTO Employee (Name, Department) VALUES '; SELECT @InsertStatement += '("" + Name + "", ""' + Department + '"")' FROM #InsertedRows; -- Execute the dynamic INSERT statement EXEC sp_executesql @InsertStatement; END; END;
Dieser Trigger nutzt die INSERTED-Pseudotabelle, um auf die eingefügten Daten zuzugreifen. Zunächst wird mithilfe einer COUNT(*)-Abfrage überprüft, ob das Paar aus Mitarbeitername und Abteilung bereits in der Tabelle „Employee“ vorhanden ist. Ist dies nicht der Fall, wird mithilfe der VALUES-Klausel basierend auf den eingefügten Zeilen dynamisch eine INSERT-Anweisung generiert. Abschließend wird die INSERT-Anweisung ausgeführt, um die fehlenden Mitarbeiterinformationen einzufügen.
Durch die Implementierung dieses Triggers können Sie sicherstellen, dass jede EmployeeResult-Einfügung zum Vorhandensein entsprechender Mitarbeiterdaten in der Employee-Tabelle führt und so die Datenintegrität und -vollständigkeit gewährleistet .
Das obige ist der detaillierte Inhalt vonWie schreibe ich einen INSERT-Trigger in SQL Server 2008, um die Integrität der Mitarbeiterdaten sicherzustellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!