web-dev-qa-db-fra.com

Dois-je ajouter SET NOCOUNT ON à tous mes déclencheurs?

C'est une connaissance assez courante que vous devriez avoir

SET NOCOUNT ON   

par défaut lors de la création de nouvelles procédures stockées.

Microsoft a changé le modèle par défaut pour l'inclure en 2012. Je pensais que cela devrait être le même pour les déclencheurs, mais il n'est pas inclus dans le modèle.

Est-ce intentionnel ou simplement un oubli?

21
DamagedGoods

Personnellement, je le recommanderais - je ne peux pas penser à une raison de ne pas le faire, sauf si vous avez un déclencheur où vous voulez spécifiquement signaler le fait qu'il fait un travail supplémentaire dans les coulisses.

J'ai écrit un court article sur les choses à surveiller lors de l'écriture de déclencheurs, et c'est l'un d'entre eux:
http://dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl; version dr:

  1. Coupez le bavardage. Utilisez NOCOUNT.
  2. Assurez-vous que votre déclencheur peut gérer plusieurs lignes.
  3. Empêchez la cascade et la récursivité des déclencheurs illimités.
  4. Évitez les performances horribles des tables virtuelles INSÉRÉES et SUPPRIMÉES.
24
db2