Bonjour, je suis débutant en SQL-Server et triggers.

J'ai une table "Tache" composé de 2 champs:
- id, uniqueidentifier et clé primaire
- Parente, uniqueidentifier qui fait référence à la tache parente
J'ai donc une arborescence structurée de taches (je précise qu'une tache ne peut pas être parente et enfant en même temps d'une autre tache)

Une table "intervenant"
- id, uniqueidentifier et clé primaire

Une table "Tache_intervenant" pour lier des intervenants à des taches
- Tache, uniqueidentifier clé primaire
- Intervenant, uniqueidentifier clé primaire

Je voudrais créer un trigger qui lors de la suppression d'une tache me supprime toutes les taches enfants (récursivement) ainsi que toutes les lignes de ma table "Tache_Intervenant" faisant référence à ma tache et donc aux taches enfants (récursivement aussi)

J'ai fait ceci et j'ai quelques questions:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TRIGGER Tache_DEL_TRIGGER
   ON  Tache 
   INSTEAD OF DELETE
AS 
BEGIN
--a)je supprime les taches enfant (au premier niveau) de ma tache supprimée
	DELETE Tache WHERE Parente IN (SELECT id FROM Deleted)
--b)je supprime le lignes dans ma table de liaison qui contiennent l'id de la tache
	DELETE Tache_Intervenant WHERE Tache IN (SELECT id FROM Deleted)
--c)apres avoir supprimé les taches enfant, je supprime la tache concernée
    DELETE Tache WHERE id IN (SELECT id FROM Deleted)
END
GO
1) Est-ce que mon instruction (a) va rappeler récursivement mon trigger?
2) Est-ce que mon instruction (c) va rappeler récursivement mon trigger?
3) Si j'ai un trigger DELETE sur ma table "Tache_Intervenant" va-t-il se déclencher?

Merci pour vos réponses