bonjour,

Je suis sous SQL server2005, j'ai déclaré un trigger de la facon suivante:

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)
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.
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:
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 [ ; ] > }
Que faire ??? Avez vous une idée sur le sujet.

En vous remerciant de vos futures réponses.

Bien Cordialement,

Léo V.V.