@@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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值