根据我见过的大多数SQL文本
SET NoCount ON
添加到数据库性能,DBA不希望看到它。
然而,在我正在处理的ASP.NET中,这会导致
使用ExecuteNonQuery
调用存储过程始终会产生-1。
这是一个已知问题,如果是,那么解决方法是什么?
所以问题是SET NoCount ON
然后ExecuteNonQuery
如何返回受影响的行数。
此问题仅适用于“ExecuteNonQuery
”。我知道我可以使用ExecuteScalar
并获取@@RowCount
答案 0 :(得分:3)
您还期待什么?您明确告诉数据库不计算行数然后您问为什么不返回计算的行?
数据库未提供受影响的行数,因为您将其关闭。这既不是问题也不是错误,这是你所做的全部观点。
答案 1 :(得分:0)
由于您要求数据库不返回该信息,因此它完全按照您的说法进行操作。
您可以尝试使用SET NOCOUNT OFF
为您的查询添加前缀,并使用SET NOCOUNT ON
添加后缀以获取特定情况下的行数