Devo aggiungere SET NOCOUNT ON a tutti i miei trigger?


21

È una conoscenza abbastanza comune che dovresti avere

SET NOCOUNT ON   

per impostazione predefinita quando si creano nuove stored procedure.

Microsoft ha modificato il modello predefinito per includerlo nel 2012. Ho pensato che dovrebbe essere lo stesso per i trigger, ma non è incluso nel modello.

È intenzionale o solo una svista?


1
Se si modificano mai i valori tramite l'editor di tabelle SSMS, questo è necessario per i trigger, altrimenti il ​​messaggio di conteggio delle righe extra dal trigger lo confonde
Martin Smith

è molto probabilmente una svista. Vedi anche stackoverflow.com/questions/1483732/set-nocount-on-usage per favore
gbn

Risposte:


24

Personalmente, lo consiglierei: non riesco a pensare a un motivo per non farlo, a meno che tu non abbia un grilletto in cui desideri specificamente sottolineare il fatto che sta facendo un lavoro aggiuntivo dietro le quinte.

Ho scritto un breve articolo sulle cose da tenere d'occhio quando si scrive trigger, e questo è uno di questi:
http://dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl; versione dr:

  1. Taglia le chiacchiere. Usa NOCOUNT.
  2. Assicurati che il tuo trigger possa gestire più righe.
  3. Prevenire il trigger illimitato a cascata e la ricorsione.
  4. Evita prestazioni orribili delle tabelle virtuali INSERTED e DELETED.

L'URL non è aggiornato. Ecco l'URL aggiornato: dave.brittens.org/blog/writing-well-behaved-triggers.html
Jonathon Watney

Buona pesca. Ho appena aggiornato il mio sito su Pelican un paio di settimane fa. ;)
db2
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.