Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insérer un déclencheur de mise à jour comment déterminer s'il s'agit d'une insertion ou d'une mise à jour

Les déclencheurs ont un INSERTED spécial et DELETED tableaux pour suivre les données "avant" et "après". Vous pouvez donc utiliser quelque chose comme IF EXISTS (SELECT * FROM DELETED) pour détecter une mise à jour. Vous n'avez que des lignes dans DELETED lors de la mise à jour, mais il y a toujours des lignes dans INSERTED .

Recherchez "inséré" dans CREATE TRIGGER.

Edit, 23 novembre 2011

Après commentaire, cette réponse est uniquement pour INSERTED et UPDATED déclencheurs.
Évidemment, les déclencheurs DELETE ne peuvent pas avoir "toujours des lignes dans INSERTED " comme je l'ai dit plus haut