@@RowCount和“SET NOCOUNT ON”在触发器中使用的先后顺序引起的问题

一般我们在触发器中都会使用@@ROWCOUNT和SET NOCOUNT ON。但是如果不注意它们之间的顺序则可能出问题。今天写了一个触发器一直不起作用,找了很久一直没有找到原因。 代码如下:

ALTER TRIGGER [trg_Houses_Updated]
   
ON  [dbo].[Houses]
   AFTER 
UPDATE
AS 
BEGIN
    
SET NOCOUNT ON;

    
IF @@ROWCOUNT = 0
    
RETURN;


    ...
END

最后突然想起来可能是SET NOCOUNT ON的原因,使@@RowCount不起作用了。然后尝试的将SET NOCOUNT ON和@@RowCount的前后顺序条换了一下果然可以使用了。修改后的代码如下:

 1 ALTER TRIGGER [trg_Houses_Updated]
 2    ON  [dbo].[Houses]
 3    AFTER UPDATE
 4 AS 
 5 BEGIN
 6     IF @@ROWCOUNT = 0
 7         RETURN;
 8 
 9     SET NOCOUNT ON;
10     ...
11 END
原文地址:https://www.cnblogs.com/hyl8218/p/1625449.html