在SQL中获取ROWCOUNT值(不是@@ ROWCOUNT)

有没有办法看到ROWCOUNT设置为什么? 用于调用我的存储过程的组件有一个选项来限制返回的行数,但它显然通过设置ROWCOUNT来实现。一个存储过程仅返回单个聚合行,但中间查询有时会返回超过限制并被截断。执行所有这些操作的函数是通用的,用于调用其他存储过程;一些我的其他程序可能需要限制。 现在我将ROWCOUNT设置为存储过程顶部的一个非常大的数字,然后在返回结果之前将其设置回(硬编码)常规限制。我不维护调用我的存储过程的组件,所以我可能不知道返回的行限制是否已更改。我想要做的是将局部变量设置为当前的ROWCOUNT值,然后在结尾处将其设置回来。有没有办法真正看到ROWCOUNT设置为什么?     
已邀请:
如果查询sys.dm_exec_sessions dmv,它将返回到此时会话中返回的行数(当然应该与@@ rowcount相同)。
SELECT row_count FROM sys.dm_exec_sessions
WHERE session_id = @@spid
您可以尝试使用它来查看是否可以使用它   现在我将ROWCOUNT设置为存储过程顶部的一个非常大的数字 你也可以做
SET ROWCOUNT 0
,在这种情况下它将返回所有行     
停止使用SET ROWCOUNT。无论如何,它已被部分弃用。 使用自SQL Server 2000以来一直存在的TOP:11年。这是每个查询,不会影响中间行,这意味着您可以在需要时将其appyl,而不是像现在一样全局。 编辑,2012年2月 它也在SQL Server 2012之后的下一个版本中被删除,用于插入,更新和删除     

要回复问题请先登录注册