SQL Server - 触发器会影响@@Rowcount 吗? [英] SQL Server - does trigger affects @@Rowcount?

查看:20
本文介绍了SQL Server - 触发器会影响@@Rowcount 吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个查询,如果存在则执行 UPSERT 或更新,如果不存在则插入:

I have a query which do UPSERT or update if exists and insert if not:

update MyTable 
set [Name]=@NewValue 
where ID=@ID

If @@RowCount = 0 
insert into MyTable([Name])
values(@Name)

现在,我想知道 @@RowCount 是否会受到触发器中执行的查询的影响?让我们在我的触发器中说:

Now, I wonder if the @@RowCount will be affected by a query executed in a trigger? Let us say in my trigger I have:

insert into MyLogs(Description) 
values("Some description...")

如果在我的第一次查询中更新成功,触发器将运行对 MyLogs 的插入,这将影响行.

If the update is successful in my first query, the trigger will run the insert to MyLogs which will have affected rows.

推荐答案

@@ROWCOUNT 与当前执行的范围相关,因此不受触发器的影响,触发器将在不同的环境中运行范围.

@@ROWCOUNT is tied to the scope of your current execution and is therefore unaffected by a trigger, which would run in a different scope.

这篇关于SQL Server - 触发器会影响@@Rowcount 吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆