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

标签 sql sql-server tsql rowcount

有没有办法查看 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/

相关文章:

sql - 以不同方式比较日期时间值

sql-server - 如何在 ODBC 中启动事务?

c# - 如何在列表框中显示查询结果?

sql-server - SQL Server 特定日期格式 DD MM YYYY

sql-server - SQL Server WHERE 子句中的与号 (&) 运算符

sql - 表值函数 我的查询计划去哪儿了?

asp.net - 使用 Web.Config 设置我的 SQL 数据库连接字符串?

sql - 两个表之间最近点的唯一分配

php - 准备好的语句不适用于 ALTER 表查询

sql-server - 插入的记录是否始终接收连续的标识值