我正在使用ExecuteNonQuery
来运行一个插入过程,它返回2,但实际上我只插入了1条记录。由于触发器的原因,我得到了1个额外的结果。有没有办法只获取实际受影响的行数?我不想获取由触发器影响的行数。
我正在使用ExecuteNonQuery
来运行一个插入过程,它返回2,但实际上我只插入了1条记录。由于触发器的原因,我得到了1个额外的结果。有没有办法只获取实际受影响的行数?我不想获取由触发器影响的行数。
SET NOCOUNT ON
例如:
CREATE TRIGGER [dbo].[triggerName] ON [dbo].[TableName]
AFTER INSERT
AS
SET NOCOUNT ON;
......
SET NOCOUNT ON
,则其受影响的行不会被计数。但是,如果您插入了三行,则ExecuteNoQuery
仍然会返回3。 - Tim Schmelterinsert into dbo.TableName Values('B'); select @@ROWCOUNT";
并使用(int)ExecuteScalar
。但是,这可能是不正确的,因为它只返回最后一个语句的行数。这将忽略触发器。 - Tim Schmelter
ExecuteNonQuery
方法返回正确的数字,对吧? - Zohar Peled