Haruskah saya menambahkan SET NOCOUNT ON ke semua pemicu saya?


21

Ini adalah pengetahuan umum yang harus Anda miliki

SET NOCOUNT ON   

secara default saat membuat prosedur tersimpan yang baru.

Microsoft telah mengubah templat default untuk menyertakan ini pada 2012. Saya pikir ini harus sama untuk pemicu, namun tidak termasuk dalam templat.

Apakah ini disengaja atau hanya pengawasan?


1
Jika Anda pernah mengedit nilai melalui editor tabel SSMS ini diperlukan untuk pemicu jika tidak, pesan jumlah baris tambahan dari pemicu membingungkannya
Martin Smith

kemungkinan besar ini merupakan kekhilafan. Lihat juga stackoverflow.com/questions/1483732/set-nocount-on-usage please
gbn

Jawaban:


24

Secara pribadi, saya akan merekomendasikan itu - saya tidak bisa memikirkan alasan untuk tidak, kecuali jika Anda memiliki pemicu di mana Anda secara khusus ingin memanggil fakta bahwa itu melakukan pekerjaan tambahan di belakang layar.

Saya menulis artikel pendek tentang hal-hal yang harus diperhatikan ketika menulis pemicu, dan ini adalah salah satunya:
http://dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl; versi dr:

  1. Potong obrolan. Gunakan NOCOUNT.
  2. Pastikan pemicu Anda dapat menangani beberapa baris.
  3. Cegah cascading dan rekursi yang tidak terbatas.
  4. Hindari kinerja mengerikan dari tabel virtual INSERTED dan DELETED.

URL kedaluwarsa. Berikut URL yang diperbarui: dave.brittens.org/blog/writing-well-behaved-triggers.html
Jonathon Watney

Tangkapan yang bagus. Saya baru saja memperbarui situs saya ke Pelican beberapa minggu yang lalu. ;)
db2
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.