当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL小技巧 又快又简单的得到你的数据库每个表的记录数

MSSQL
SQL数据操作基础(初级)3
SQL数据操作基础(初级)4
SQL数据操作基础(初级)5
SQL数据操作基础(中级)6
SQL数据操作基础(中级)7
SQL数据操作基础(中级)8
SQL数据操作基础(中级)9
SQL数据操作基础(中级)10
如何找出消耗cup的进程信息和执行的语句
改善SQL Server内存管理
减少SQL日志的三种方法
SQL脚本生成的一些BUG(1)
SQL脚本生成的一些BUG(2)
sqlserver日志文件总结及充满处理
启动SQL SERVER时自动执行存储过程
SQL Server 连接基础知识
修改用户定义的数据类型
利用MSSQL sp自制未公开的加密函数
让你的SQL运行速度明显提高
十大绝招保护SQL Server数据库安全

MSSQL 中的 SQL小技巧 又快又简单的得到你的数据库每个表的记录数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 68 ::
收藏到网摘: n/a

说到如何得到表的行数,大家首先想到的应该是select count(*) from table1.... 但是如何得到某个数据库所有的表的记录数,你要是用上面的方法估计得累死了。呵呵
下面提供如何借用sysindexes和sysobjects表来得到某个数据库每个表记录数的方法:
先给出SQL Server 2000版本的:
复制代码 代码如下:

SELECT o.NAME,
i.rowcnt
FROM sysindexes AS i
INNER JOIN sysobjects AS o ON i.id = o.id
WHERE i.indid < 2
AND OBJECTPROPERTY(o.id, 'IsMSShipped') = 0
ORDER BY o.NAME

SQL Server2005/8版本的SQL 语句:
复制代码 代码如下:

SELECT o.name,
ddps.row_count
FROM sys.indexes AS i
INNER JOIN sys.objects AS o ON i.OBJECT_ID = o.OBJECT_ID
INNER JOIN sys.dm_db_partition_stats AS ddps ON i.OBJECT_ID = ddps.OBJECT_ID
AND i.index_id = ddps.index_id
WHERE i.index_id < 2
AND o.is_ms_shipped = 0
ORDER BY o.NAME

赶快试试吧,肯定和你count(*)得到的结果相同。