SQL Server的行数

cMi*_*nor 9 sql-server-2008

如何计算或知道表没有扫描所有表的行数,可能使用ROW_NUMBER

The*_*ter 17

如果您需要精确计数,则需要执行COUNT(*)扫描聚簇索引的计数.

您可以使用sys.partitions架构进行粗略计算,如下所示http://www.kodyaz.com/articles/sql-rowcount-using-sql-server-system-view-sys-partitions.aspx

更新:要将计数变为变量:

DECLARE @cnt INT;
SELECT @cnt = SUM(rows)
FROM sys.partitions
WHERE
  index_id IN (0, 1)
  AND object_id = OBJECT_ID('MyDB.dbo.MyTable');
SELECT @cnt;
Run Code Online (Sandbox Code Playgroud)

  • +1到目前为止唯一的答案是解决"不扫描所有表格"问题的部分内容. (3认同)