我应该将 SET NOCOUNT ON 添加到我的所有触发器中吗?

Dam*_*ods 21 trigger sql-server t-sql

这是你应该拥有的相当普遍的知识

SET NOCOUNT ON   
Run Code Online (Sandbox Code Playgroud)

默认在创建新存储过程时。

Microsoft 已在 2012 年更改了默认模板以包含此内容。我认为这对于触发器应该是相同的,但它并未包含在模板中。

这是故意的还是只是疏忽?

db2*_*db2 24

就个人而言,我会推荐它 - 我想不出不这样做的理由,除非你有一个触发器,你特别想指出它在幕后做额外工作的事实。

我写了一篇关于编写触发器时要注意的事情的简短文章,这是其中之一:http :
//dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl;博士版本:

  1. 停止喋喋不休。使用 NOCOUNT。
  2. 确保您的触发器可以处理多行。
  3. 防止无界触发器级联和递归。
  4. 避免 INSERTED 和 DELETED 虚拟表的可怕性能。