it-swarm-eu.dev

Mám přidat do všech svých spouštěčů SET NOCOUNT ON?

Je docela běžné, že byste měli mít

SET NOCOUNT ON   

ve výchozím nastavení při vytváření nových uložených procedur.

Společnost Microsoft změnila výchozí šablonu tak, aby zahrnovala toto v roce 2012. Myslel jsem, že by to mělo být stejné pro spouštěče, přesto to není zahrnuto v šabloně.

Je to záměrné nebo jen dohled?

21
DamagedGoods

Osobně bych to doporučil - nemohu vymyslet důvod, proč tomu tak není, pokud nemáte spoušť, ve které chcete konkrétně vyvolat skutečnost, že za scénami dělá další práci.

Napsal jsem krátký článek o věcech, které je třeba při psaní triggerů sledovat, a to je jedna z nich:
http://dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl; dr verze:

  1. Vystřihněte chvění. Použijte NOCOUNT.
  2. Ujistěte se, že spoušť zvládne více řádků.
  3. Zabraňte neomezenému spouštění kaskádování a rekurze.
  4. Vyvarujte se hrozného výkonu virtuálních tabulek INSERTED a DELETED.
24
db2