问题描述
@@ROWCOUNT
与当前执行的范围相关,因此不受触发器的影响,触发器将在其他范围内运行。
解决方法
我有一个查询,该查询会进行UPSERT或更新(如果存在)并插入(如果不存在):
update MyTable
set [Name]=@NewValue
where ID=@ID
If @@RowCount = 0
insert into MyTable([Name])
values(@Name)
现在,我想知道是否@@RowCount
会受到触发器中执行的查询的影响?让我们说一下我的触发条件:
insert into MyLogs(Description)
values("Some description...")
如果更新在我的第一个查询中成功,则触发器将向MyLogs运行插入操作,该操作将影响行。