有没有办法查看 ROWCOUNT 设置为多少?
用于调用我的存储过程的组件有一个选项可以限制返回的行数,但它显然是通过设置 ROWCOUNT 来实现的。一个存储过程仅返回单个聚合行,但中间查询有时返回的内容超出限制并被截断。完成所有这些操作的函数是通用的,用于调用其他存储过程;我的其他一些程序可能需要限制。
现在,我在存储过程的顶部将 ROWCOUNT 设置为一个非常大的数字,然后在返回结果之前将其设置回(硬编码的)常规限制。我不维护调用我的存储过程的组件,因此我可能不知道返回的行限制是否已更改。我想要做的是将局部变量设置为当前 ROWCOUNT 值,然后在最后将其设置回来。有没有办法实际查看 ROWCOUNT 设置为多少?
最佳答案
如果您查询 sys.dm_exec_sessions dmv,它将返回到目前为止 session 上返回的行数(当然应该与 @@rowcount 相同)。
SELECT row_count FROM sys.dm_exec_sessions
WHERE session_id = @@spid
您也许可以尝试一下,看看是否可以使用它
Right now I am setting ROWCOUNT to a very large number at the top of my stored procedure
您也可以只执行SET ROWCOUNT 0
,在这种情况下它将返回所有行
关于sql - 在 SQL 中获取 ROWCOUNT 值(不是 @@ROWCOUNT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4502143/