J'ai deux tables. Club et Coach. Entre eux est 0,1 - 0,1 relation (l'entraîneur peut avoir zéro ou un club, le club peut avoir zéro ou un entraîneur). Quand je veux changer l'entraîneur du club donné, je dois mettre à jour la table du club. Donc je dois changer idCoach de ce club. Considérons un nouvel entraîneur (l'entraîneur nouvellement désigné du club donné) est déjà entraîneur d'un autre club. Je dois régler sur le champ Null idCoach de ce club, car son entraîneur sera assigné à un autre club. Aussi, si le club pour lequel je veux changer d'entraîneur, a déjà un entraîneur, alors je dois mettre idClub de cet entraîneur (dans la table Coach) à Null.Arrêt de mise à jour MS SQL Trigger appel verrou mort?
Tout ce qui précède, s'applique également lorsque je veux changer le club de l'entraîneur. (Doit être défini sur le champ Null idCoach du club précédent d'un entraîneur donné et doit être défini sur null idCoach du nouveau club). Les mêmes problèmes peuvent survenir lorsque j'insère un nouvel enregistrement dans la table Club ou Coach, ou si je supprime l'existant (en insertion, mise à jour et suppression, je dois faire attention aux références correspondantes et les dissocier).
Je veux résoudre ce problème avec des déclencheurs. Je suppose que je devrais avoir 3 déclencheurs dans la table de club (pour insérer, mettre à jour et supprimer) et 3 plus dans la table d'entraîneur. Dans le déclencheur de mise à jour (par exemple dans Club) je dois mettre à jour la table Coach qui déclenchera à nouveau la mise à jour dans le Club (parce que le corps doit mettre à jour la table Club) et déclenchera Coach et déclenchera et ainsi de suite. Donc, je vais avoir un verrou mort.
Comment résoudre ce problème?
Ceci est la première fois que je travaille avec des déclencheurs, désolé à l'avance, pour cette grande explication d'une chose simple.
À la votre!
C'est pourquoi les nouveaux développeurs ne devraient pas être autorisés à créer des déclencheurs. Je trouve bizarre que les gens supposent que ça ne marche que d'un seul disque à la fois, mais ensuite je suis un spécialiste de la base de données et je pense dans les décors. Je n'ai jamais pensé qu'ils ne travailleraient pas dans des décors. – HLGEM
J'ai un processus de débogage de déclencheur qui le rend relativement facile si vous êtes intéressé. Trop long pour un commentaire mais je peux ajouter à la fin de cette question si vous voulez le voir. – HLGEM