SQl Server中的SET NO Count ON导致ExecuteNonQuery出现问题

时间:2015-05-15 11:37:00

标签: c# asp.net sql-server vb.net

根据我见过的大多数SQL文本

SET NoCount ON

添加到数据库性能,DBA不希望看到它。

然而,在我正在处理的ASP.NET中,这会导致

使用ExecuteNonQuery调用存储过程始终会产生-1。

这是一个已知问题,如果是,那么解决方法是什么?

所以问题是SET NoCount ON然后ExecuteNonQuery如何返回受影响的行数。

此问题仅适用于“ExecuteNonQuery”。我知道我可以使用ExecuteScalar并获取@@RowCount

2 个答案:

答案 0 :(得分:3)

您还期待什么?您明确告诉数据库计算行数然后您问为什么不返回计算的行?

数据库未提供受影响的行数,因为您将其关闭。这既不是问题也不是错误,这是你所做的全部观点。

答案 1 :(得分:0)

由于您要求数据库不返回该信息,因此它完全按照您的说法进行操作。

您可以尝试使用SET NOCOUNT OFF为您的查询添加前缀,并使用SET NOCOUNT ON添加后缀以获取特定情况下的行数