只获取更新查询的结果

本文关键字:结果 查询 更新 获取 | 更新日期: 2023-09-27 18:15:05

当我对SQL Server数据库执行更新时,我得到受更新影响的行和一些触发器受影响的行的结果。

因此,例如,直接在数据库上执行的更新:

UPDATE: (32 row(s) affected)
Trigger1: (1 row(s) affected)
Trigger2: (2 row(s) affected)
...

现在,当我执行_context.Database.ExecuteSqlCommand(query, params)时,我总是得到所有这些结果的和,在我的例子中,结果值是35

我只需要UPDATE的结果,在我的例子中是32

是否有可能忽略触发器的结果?

只获取更新查询的结果

SET NOCOUNT ON放在触发器的第一行。

我认为@Alireza的答案是最有意义的,如果有可能改变触发器,但如果它不是你可以改变你的数据库调用执行更新语句和返回@@ROWCOUNT ?

_context.Database.SqlQuery<int>("update xx ...; select @@ROWCOUNT");

我在MSDN上找不到任何文档,但这个问题证实了@@ROWCOUNT不受触发器的影响。