web-dev-qa-db-ja.com

すべてのトリガーにSET NOCOUNT ONを追加する必要がありますか?

知っておくべきことはかなり一般的な知識です

SET NOCOUNT ON   

新しいストアドプロシージャを作成するときのデフォルト。

Microsoftはデフォルトのテンプレートを変更して、2012年にこれを含めるようにしました。これはトリガーでも同じであると考えましたが、テンプレートには含まれていません。

これは意図的なものですか、それとも単なる見落としですか?

21
DamagedGoods

個人的には、私はそれをお勧めします-裏で追加の作業をしているという事実を明確に呼びたいトリガーがない限り、そうしない理由は考えられません。

私はトリガーを書くときに注意すべきことについて短い記事を書きました、そしてこれはそれらの一つです:
http://dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl; drバージョン:

  1. おしゃべりをカットします。 NOCOUNTを使用します。
  2. トリガーが複数の行を処理できることを確認してください。
  3. 無制限のトリガーのカスケードと再帰を防止します。
  4. INSERTEDおよびDELETED仮想テーブルの恐ろしいパフォーマンスを回避します。
24
db2