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


21

あなたが持っているべきかなり一般的な知識です

SET NOCOUNT ON   

デフォルトでは、新しいストアドプロシージャを作成します。

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

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


1
あなたはSSMSテーブルエディタを経由して編集値は、これがトリガーに必要な場合は、トリガからそれ以外の余分な行数のメッセージ混乱も
マーティン・スミス

それはおそらく見落としです。stackoverflow.com/questions/1483732/set-nocount-on-usageも参照してください
gbn

回答:


24

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

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

tl; drバージョン:

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

URLが古くなっています。更新されたURLは次のとおり
ワトニー

良いキャッチ。数週間前にサイトをペリカンに更新しました。;)
db2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.