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