Maison > base de données > tutoriel mysql > Comment écrire un déclencheur INSERT dans SQL Server 2008 pour garantir l'intégrité des données des employés ?

Comment écrire un déclencheur INSERT dans SQL Server 2008 pour garantir l'intégrité des données des employés ?

Patricia Arquette
Libérer: 2024-12-27 04:00:10
original
516 Les gens l'ont consulté

How to Write an INSERT Trigger in SQL Server 2008 to Ensure Employee Data Integrity?

É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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal