2011-01-19 6 views
0

Je n'ai jamais utilisé de déclencheurs ou de procédures stockées. Maintenant, je veux étudier comment et quand je l'utilise. J'ai une table nommée Products, lorsque la table de produits est remplie avec la ligne je veux copier ProductID et UnitsInStock et paset dans la table d'inventaire. Il y a un problème dans la table de l'inventaire est la colonne qui doit remplir acheter l'utilisateur lorsque la ligne est en train de remplir. Des déclencheurs ou des procédures stockées seraient-ils utiles dans cette situation?Déclencheurs SQL Server, procédures stockées

Répondre

1

Personnellement, je n'utiliserais jamais de déclencheurs lorsque j'utilise du code, c'est très bien si tout votre travail se fait en SQL. La raison en est qu'il est d'abord difficile pour quelqu'un d'autre de réaliser que c'est un déclencheur qui fait du travail dans le back-end. Secundly s'il y a une erreur dans votre code ... les triggers sont la dernière chose que vous vérifiez. Et si les noms de colonnes changent, il est facile de détecter l'erreur dans le code. Les procédures stockées sont bonnes, mais tout dépend d'une organisation à l'autre. J'ai commencé à faire du sql dans le code et je l'aime car il n'y a pas de travail de va-et-vient pour regarder à travers des centaines de procédures stockées pour le pertinent. Mon point de vue cependant ...

0

Si vous avez juste besoin de copier des éléments d'une table à une autre après l'insertion ou la mise à jour, un déclencheur est le bon moyen de le faire.

Mais si dans votre cas une colonne doit être remplie avec des données appliquées par l'utilisateur, vous devrez probablement le faire à partir de votre code. A propos de l'utilisation des procédures stockées: consultez this. Mais il y a beaucoup de discussions sur le web à propos de ce thème. Juste google un peu autour.

0

Utilisez une procédure stockée, transmettez toutes les valeurs nécessaires en tant que paramètres, puis dans une transaction, modifiez la table des produits, puis la table d'inventaire, puis validez vos modifications aux deux tables en même temps. se mettre à jour, ou ne le fait pas.

Questions connexes