Écrire un déclencheur INSERT dans SQL Server 2008 : déclencher l'insertion d'informations sur les employés
Dans SQL Server 2008, vous pouvez utiliser des déclencheurs pour effectuer des actions spécifiques lorsque les données sont modifiées dans un tableau. L'un de ces scénarios consiste à garantir l'existence des informations sur les employés dans la table Employee lors de leur insertion dans la table EmployeeResult.
Pour créer un déclencheur qui insère les enregistrements des employés lorsqu'ils sont manquants dans la table Employee :
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;
Ce déclencheur utilise la pseudo-table INSERTED pour accéder aux données insérées. Il vérifie d'abord si la paire nom de l'employé et service existe déjà dans la table Employee à l'aide d'une requête COUNT(*). Si ce n'est pas le cas, il génère dynamiquement une instruction INSERT à l'aide de la clause VALUES basée sur les lignes insérées. Enfin, il exécute l'instruction INSERT pour insérer les informations manquantes sur l'employé.
En implémentant ce déclencheur, vous pouvez vous assurer que chaque insertion de EmployeeResult entraîne l'existence de données d'employé correspondantes dans la table Employee, garantissant ainsi l'intégrité et l'exhaustivité des données. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!