J'ai une approche différente pour répondre aux deux questions. J'évite généralement d'utiliser des déclencheurs jusqu'à ce que ce soit le dernier choix, car cela ajoute une surcharge inutile à la base de données.
Comparaison entre triggers et procédure stockée
- Il est facile d'afficher les relations entre les tables, les contraintes, les index, les procédures stockées dans la base de données, mais les déclencheurs sont difficiles à afficher.
- Les déclencheurs s'exécutent de manière invisible pour l'application cliente. Ils ne sont pas visibles ou peuvent être tracés dans le code de débogage.
- Il est facile d'oublier les déclencheurs et s'il n'y a pas de documentation, il sera difficile pour les nouveaux développeurs de comprendre leur existence.
- Les déclencheurs s'exécutent chaque fois que les champs de la base de données sont mis à jour et qu'il y a une surcharge sur le système. Cela rend le système plus lent.
Assez dit, c'est pourquoi je préfère les procs stockés. Vous pouvez créer un fichier de travail (par exemple :il s'exécute toutes les 30 minutes, ou à tout autre moment) via l'agent. Vous pouvez utiliser la logique d'insertion dans ce fichier de travail. Ainsi vos données dans la tree table
serait proche du temps réel.
maintenant référence pour créer un agent :
http://msdn.microsoft.com/en-us/library/ms191128(v=sql.90).aspx
http://msdn. microsoft.com/en-us/library/ms181153(v=sql.105).aspx