SQL Server déclencher lors de l'insertion et de la façon de référence les données qui ont été insérées
De haut niveau, j'ai deux tables qui ont besoin d'avoir des données en miroir. Je ne peux pas passer et modifier tout le code à écrire pour les deux j'ai donc pensé utiliser un déclencheur SQL pour insérer des données dans le 2ème tableau à tout moment les données sont insérées dans le 1er. C'est là que je suis bloqué:
CREATE TRIGGER new_trigger_INSERT
ON old_table
FOR INSERT
INSERT INTO new_table (id, first_name, last_name)
VALUES () --This is where I'm lost, I need to insert some of the data from the insert that executed this trigger
Toute aide est appréciée, même si il ya une meilleure façon d'accomplir ce laissez-moi savoir.
OriginalL'auteur jon3laze | 2010-12-09
Vous devez vous connecter pour publier un commentaire.
Utiliser le " inséré table:
[PS: N'oubliez pas d'assurer vos déclencheurs gérer plusieurs lignes...]
Réf. Create Trigger
Bon article: L'exploration des Déclencheurs SQL Server
une erreur commune faite par beaucoup de "déclencheur débutants" est de supposer que le déclencheur sera tirée une fois pour chaque ligne insérée - d'où ils prennent le "Insérée" le tableau ne contient qu'une seule ligne. Ce n'est pas la façon dont il fonctionne - si vous insérez un lot de 50 lignes, votre déclencheur d'INSERTION sera déclenché une fois pour l'ensemble du lot, et de la "Insérée" tableau contiendra 50 lignes - vous besoin pour être en mesure de faire face avec ce scénario
OriginalL'auteur Mitch Wheat
Dans les déclencheurs, vous avez "inséré" et "supprimé" les tables. Dans ce cas, vous utilisez uniquement le "insérée" de la table, mais dans déclencheur de mise à jour vous utilisez à la fois.
OriginalL'auteur kubal5003