当我在SQL Server数据库上执行更新时,我得到了受更新 AND 影响的行影响的行的结果。
例如,直接在数据库上执行更新:
UPDATE: (32 row(s) affected)
Trigger1: (1 row(s) affected)
Trigger2: (2 row(s) affected)
...
现在当我执行_context.Database.ExecuteSqlCommand(query, params)
时,我总是得到所有结果的总和,在我的例子中,结果值是35
。
在我的示例UPDATE
中,我只需要32
的结果。
是否有可能忽略触发器的结果?
答案 0 :(得分:3)
将SET NOCOUNT ON
放在触发器的第一行。
答案 1 :(得分:2)
我认为@ Alireza的答案最有意义,如果它可以更改触发器,但如果不是,你可以更改数据库调用来执行update语句并返回{{ 1}}?
@@ROWCOUNT
我无法在MSDN上找到任何文档,但this question确认@@ ROWCOUNT不受触发器影响。