2011-09-07 3 views
0

J'ai une question plutôt simple. Je dois créer le déclencheur de suppression.Supprimer déclencheur SQL 2005

j'ai trois table, Main et T1 et T2. Les T1 et T2 se connectent à Main avec le même champ ID donc j'ai déjà un trigger qui fonctionne très bien mais j'ai besoin de supprimer le trigger qui supprimera l'enregistrement dans T1 et T2 quand il sera supprimé de la table Main.

Une aide?

+0

Avez-vous considéré comme une clé étrangère avec « ON SUPPRIMER CASCADE »? –

+0

oui, et j'ai supprimé les contractions clés Enforce foreigh et j'ai supprimé les données exsisting supprimées .. – Tony

+0

@Tony: pourquoi supprimer "vérifier les données existantes"? Ceci est sans rapport avec CASCADE SUPPRIMER – gbn

Répondre

0

Un déclencheur de suppression mettrait le feu après l'exécution SUPPR. Cependant, le DELETE échouera en raison d'erreurs de clé étrangère (vous avez des FK, n'est-ce pas?).

Options:

  • procédure stockée pour supprimer T2, T1 puis principal dans une transaction
  • Définissez les FKs avoir cascading delete
  • lieu de déclenchement (qui se déclenche avant la suppression) qui est effectivement comme une procédure stockée
+0

Salut I essayé la cascade fnction mais il ne le permettra pas puisqu'il est le même id de deux tables, il n'est pas unique – Tony

+0

Tony: ne comprends pas ce que tu veux dire: si la ligne parente n'est pas unique comment sais-tu quelle ligne effacer ? – gbn

+0

Les trois tables ont le même ID, c'est pourquoi je ne pouvais pas utiliser la cascade, Connexion: Main à T1 et Main à T2, même champ – Tony

Questions connexes