Tüm tetikleyicilerime SET NOCOUNT ON ekleyelim mi?


21

Sahip olmanız gereken oldukça yaygın bir bilgidir.

SET NOCOUNT ON   

yeni saklı yordamlar oluştururken varsayılan olarak.

Microsoft, 2012'ye dahil etmek için varsayılan şablonu değiştirdi. Bunun tetikleyiciler için aynı olması gerektiğini düşündüm, ancak şablona dahil edilmedi.

Bu kasıtlı mı yoksa sadece bir gözetim mi?


1
Değerleri SSMS tablo düzenleyicisi aracılığıyla düzenlerseniz, bu durum tetikleyiciler için gereklidir, aksi halde tetikleyiciden gelen fazladan satır sayısı onu karıştırır
Martin Smith

bu büyük olasılıkla bir gözetim. Ayrıca bkz. Stackoverflow.com/questions/1483732/set-nocount-on-usage lütfen
gbn

Yanıtlar:


24

Şahsen, bunu tavsiye ederim - özellikle sahne arkasında ek çalışmalar yapmak istediğini söylemek istediğiniz bir tetikleyiciniz olmadığı sürece, bir neden düşünemiyorum.

Tetikleyiciler yazarken dikkat edilmesi gerekenler hakkında kısa bir yazı yazdım ve bu da onlardan biri:
http://dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl; dr sürümü:

  1. Sohbeti kesin. NOCOUNT kullanın.
  2. Tetikleyicinizin birden çok satırı idare edebildiğinden emin olun.
  3. Sınırlandırılmamış tetik kademesini ve özyinelemeyi önleyin.
  4. INSERTED ve DELETED sanal tablolarının korkunç performansından kaçının.

URL güncel değil. İşte güncellenen URL: dave.brittens.org/blog/writing-well-behaved-triggers.html
Jonathon Watney

İyi yakalama. Birkaç hafta önce sitemi Pelican'a güncelledim. ;)
db2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.