只获取更新查询的结果
本文关键字:结果 查询 更新 获取 | 更新日期: 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不受触发器的影响。