有没有办法查看ROWCOUNT设置为什么?
用于调用我的存储过程的组件有一个限制返回行数的选项,但它显然是通过设置ROWCOUNT来实现这一点的。一个存储过程只返回单个聚合行,但是中间查询有时会返回超过限制的行,并且会被截断。完成这一切的函数是通用的,用于调用其他存储过程;我的一些其他过程可能需要限制。
现在,我在存储过程的顶部将ROWCOUNT设置为一个非常大的数字,然后在返回结果之前将其设置回(硬编码的)常规限制。我没有维护调用我的存储过程的组件,所以我可能不知道返回的行数限制是否改变了。有没有办法真正看到ROWCOUNT被设置成什么?
发布于 2010-12-22 01:37:18
如果查询rowcount dmv,它将返回到目前为止在会话中返回的行数(当然应该与@@ sys.dm_exec_sessions相同)。
SELECT row_count FROM sys.dm_exec_sessions
WHERE session_id = @@spid您也许可以尝试一下,看看是否可以使用它
现在,我在我的存储过程的顶部将
设置为一个非常大的数字
您也可以只执行SET ROWCOUNT 0,在这种情况下,它将返回所有行
发布于 2010-12-22 02:33:05
停止使用SET ROWCOUNT。不管怎样,它已经被部分弃用了。
使用自SQL Server 2000以来一直存在的TOP : 11年。这是针对每个查询的,不会影响中间行,这意味着您可以在需要时附加它,而不是像现在那样全局附加。
编辑,2012年2月
在SQL Server 2012 too for insert, update and delete之后的下一个版本中将删除它
https://stackoverflow.com/questions/4502143
复制相似问题