bonjour,
Je suis sous SQL server2005, j'ai déclaré un trigger de la facon suivante:
Apres plusieurs essais, je me rends compte qu'il est déclenché apres l'excécution de la fonction delete et non pas avant comme je le souhaite. Du coup je me retrouve avec une erreur, dûe au fait que je veuille supprimer un n-upplets qui est utilisé comme clé étrangere dans une autre table. C'est pourquoi je fais un remplacement de la valeur de clé étrangere par un NULL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TRIGGER tr_PlageHoraire ON PlageHoraire for delete AS UPDATE Utilisateurs set Utilisateurs.Num_PlageHoraire = null where Utilisateurs.Num_PlageHoraire IN(select deleted.Num_Plage from deleted)
J'ai trouvé qu'il fallait utiliser la fonction before, mais elle est pas reconnu dans SQL server 2005 (version 9.0 SP1).
Ci joint le modéle de l'aide sur le trigger:
Que faire ??? Avez vous une idée sur le sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }
En vous remerciant de vos futures réponses.
Bien Cordialement,
Léo V.V.
Partager