首页 > 数据库 > > sql server 2012中统计表行数的三种方法
--01.使用sys.partitions和sys.tables
SELECT OBJECT_NAME(object_id) AS object_name,
rows
FROM sys.partitions
WHERE index_id IN ( , 1 )
AND object_id IN (
SELECT object_id FROM sys.tables
);
GO
--02.使用sp_spaceused
--step01,构建表函数
DECLARE @table_rows TABLE
(
name NVARCHAR(MAX),
rows BIGINT,
reserved NVARCHAR(100),
data NVARCHAR(100),
index_size NVARCHAR(100),
unused NVARCHAR(100)
);
INSERT INTO @table_rows
(
name,
rows,
reserved,
data,
index_size,
unused
)
EXEC sp_MSforeachtable @command1 = 'exec sp_spaceused ''?''';
SELECT a.name,
a.rows,
a.reserved,
a.data,
a.index_size,
a.unused
FROM @table_rows AS a;
--03,使用sysobject和sysindexes
SELECT a.name,
b.rows
FROM sysobjects a
INNER JOIN sysindexes AS b
ON a.id = b.id
WHERE a.xtype = 'u'
AND b.indid IN ( , 1 );

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3131711/ ,如需转载,请注明出处,否则将追究法律责任。