Bonjour,
J'aimerais votre conseil concernant ce petit problème :
J'ai, par exemple 3 tables :
FAL qui est le lieu
TEMPLATE pour lister mes taches
TASK pour archiver mes taches
--
TEMPLATE a deux clés étrangère sur FAL
TASK à une clé étrangère sur FAL
--
La condition est la suivante :
Lors de la suppression d'un enregistrement dans FAL, je regarde si DANS ma première clé de TEMPLATE il existe des champs,
si il en existe pas
alors je fais un delete cascade DANS TEMPLATE ET TASK
sinon un rollback.
Est ce possible qu'en faisant un NO ACTION sur ma première clé, un cascade sur ma deuxième clé dans template et un cascade dans TASK j'arrive naturellement à respecter ma condition ?
Si non, je pense faire un trigger :
Si le trigger est la solution, le code serait - il bon ?
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 dbo.TR_DELETE_FAL_VERIF_TEMPLATE ON dbo.FAL FOR DELETE AS -- vérification dans template si il existe la clé dans les XXXX_ID (ne pas confondre avec les XXX_info_ID) IF EXISTS (SELECT COUNT(*) FROM TEMPLATE WHERE FAL_ID=(select deleted.FAL_ID from DELETED)) BEGIN ROLLBACK RAISERROR ('blablabla', 16, 1) END GO
Merci d'avance pour votre aide précieuse![]()
Partager