SQL Server使用系统表统计用户表的记录数
2014-08-22 13:11
176 查看
今天领导安排一个任务就是统计数据库中各个表的记录数目,我在数据库中数了一下一共有70多张表,当时感觉工作量还是挺大的。但通过查询资料使用了SQL Server内部的系统表,就轻松完成了任务,现记录下来以备他用。 用到的系统表为【sysobjects】、【sysindexes】,通过两张表的内连接查询即可统计出各用户表的记录数目。SQL如下:
其中,’U‘代表用户表。
1、关于系统表【sysobjects】字段相关说明
2、关于系统表【sysindexes】字段相关说明
希望对大家有所帮助。
with TableRecord(TableName,RecordCount) as ( select o.name, i.rows from sysobjects o, sysindexes i where o.id = i.id and o.Xtype = 'U' and i.indid < 2 ) select * from TableRecord order by tablename
其中,’U‘代表用户表。
1、关于系统表【sysobjects】字段相关说明
列名 | 数据类型 | 描述 |
---|---|---|
name | sysname | 对象名。 |
Id | int | 对象标识号。 |
xtype | char(2) | 对象类型。可以是下列对象类型中的一种: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 UQ = UNIQUE 约束(类型是 K) V = 视图 X = 扩展存储过程 |
uid | smallint | 所有者对象的用户 ID。 |
info | smallint | 保留。仅限内部使用。 |
status | int | 保留。仅限内部使用。 |
base_schema_ ver | int | 保留。仅限内部使用。 |
replinfo | int | 保留。供复制使用。 |
parent_obj | int | 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 |
crdate | datetime | 对象的创建日期。 |
ftcatid | smallint | 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。 |
schema_ver | int | 版本号,该版本号在每次表的架构更改时都增加。 |
stats_schema_ ver | int | 保留。仅限内部使用。 |
type | char(2) | 对象类型。可以是下列值之一: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束 L = 日志 P = 存储过程 R = 规则 RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 V = 视图 X = 扩展存储过程 |
userstat | smallint | 保留。 |
sysstat | smallint | 内部状态信息。 |
indexdel | smallint | 保留。 |
refdate | datetime | 留作以后使用。 |
version | int | 留作以后使用。 |
deltrig | int | 保留。 |
instrig | int | 保留。 |
updtrig | int | 保留。 |
seltrig | int | 保留。 |
category | int | 用于发布、约束和标识。 |
cache | smallint | 保留。 |
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 表 ID(如果 indid = 0 或 255)。否则为索引所属表的 ID。 |
status | int | 内部系统状态信息。 |
first | binary(6) | 指向第一页或根页的指针。 |
indid | smallint | 索引 ID: 1 = 聚集索引 >1 = 非聚集 255 = 具有 text 或 image 数据的表条目 |
root | binary(6) | 如果 indid >= 1 和 < 255,root 是指向根页的指针。如果indid = 0 或indid = 255,root 是指向最后一页的指针。 |
minlen | smallint | 最小行大小。 |
keycnt | smallint | 键的数目。 |
groupid | smallint | 在其上创建对象的文件组 ID。 |
dpages | int | 如果 indid = 0 或 indid = 1,dpages 是已用数据页的计数。如果indid= 255,其设置为 0。否则是已用索引页的计数。 |
reserved | int | 如果 indid = 0 或 indid = 1,reserved 是分配给所有索引和表数据的页计数。如果indid= 255,reserved 是分配给 text 或image数据的页计数。否则是分配给索引的页计数。 |
used | int | 如果 indid = 0 或 indid = 1,used 是用于所有索引和表数据的总页数。如果indid= 255,used 是用于 text 或 image 数据的页计数。否则是用于索引的页计数。 |
rowcnt | bigint | 基于 indid = 0 和 indid = 1 的数据级行计数。如果indid = 255,rowcnt 设置为 0。 |
rowmodctr | int | 对自上次更新表的统计后插入、删除或更新行的总数进行计数。 |
xmaxlen | smallint | 最大行大小。 |
maxirow | smallint | 最大非叶索引行大小。 |
OrigFillFactor | tinyint | 创建索引时使用的起始填充因子值。不保留该值;然而,如果需要重新创建索引但记不住当初使用的填充因子,则该值可能很有帮助。 |
reserved1 | tinyint | 保留。 |
reserved2 | int | 保留。 |
FirstIAM | binary(6) | 保留。 |
impid | smallint | 保留。索引实现标志。 |
lockflags | smallint | 用于约束经过考虑的索引锁粒度。例如,对于本质上是只读的查找表,可以将其设置为仅进行表级锁定以使锁定成本减到最小。 |
pgmodctr | int | 保留。 |
keys | varbinary(816) | 组成索引键的列 ID 列表。 |
name | sysname | 表名(如果 indid = 0 或 255)。否则为索引的名称。 |
statblob | image | 统计 BLOB。 |
maxlen | int | 保留。 |
rows | int | 基于 indid = 0 和 indid = 1的数据级行数,该值对于indid>1 重复。如果 indid = 255,rows 设置为 0。提供该列是为了向后兼容。 |
相关文章推荐
- SQL Server 中统计各用户表记录条数 的两种方法
- SQL Server 递归找出父子记录,并标统计当前所在层级用户数
- SQL Server 中统计各用户表记录条数 的两种方法
- SQL Server查看数据库操作记录系统函数fn_dblog使用
- 使用Oracle中的用户表作为Openfire用户系统(注意事项记录)
- 老男孩教育每日一题-2017年4月5日-统计你的linux系统的history历史记录,得出你最喜欢使用的前10个命令
- SQL Server 系统表使用-查询指定数据库中用户表及其列、数据类、长度
- Openads,phpadsnew广告统计系统,中文安装和使用说明,教程完整版
- SQL 统计用户累计消费记录
- 使用Application_Error事件处理程序把异常记录到系统事件日志
- 使用PHP往Windows系统中添加用户
- SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ol
- 最近开发一个SQL server大数据量统计系统的经验总结
- 表中记录查询排序随笔(sql server中order by使用方式小总结)
- SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- 最近开发一个SQL server大数据量统计系统的经验总结
- 关闭SQL SERVER用户进程,防止因为用户正在使用数据库,导致数据库恢复或删除失败
- DataTable中数据记录的统计(转自CSDN,正好使用datagrid用上)
- 在J2ME中使用记录存储系统(RMS)存储信息
- [Database] SqlServer: Sql Server中记录的用户信息