1.获取所有数据库名

--SELECT Name FROM Master..SysDatabases ORDER BY Name --

2.获取所有表名: 
--SELECT Name NAMEtemp,* FROM TEST..SysObjects Where XType='U' ORDER BY Name --表名  
----XType='U':表示所有用户表; 
----XType='S':表示所有系统表;

3.获取所有字段名:

SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')

4.查询所有表行数 
----SELECT * FROM TEST..sysindexes --表明细

select a.name, b.rows --查询所有表行数/TEST为库名称 
from TEST..sysobjects a 
inner join TEST..sysindexes b on a.id = b.id 
where a.type = 'u' 
and b.indid in (0, 1) 
order by a.name

【  declare @N int   set @N=10000

   --通过查询索引表的聚集索引查询  (indid=1,这种是体现数据是以聚集索引方式存储体现的查询) 
   select object_name(id),rowcnt from sysindexes where rowcnt>=@N and indid=1 and objectproperty(id,'isusertable')=1 
   --通过查询索引表的无聚集索引查询   (indid=0,这种是体现数据是以数据堆方式存储体现的查询,无聚集索引的表) 
   select object_name(id),rowcnt from sysindexes where rowcnt>=@N and indid=0 and objectproperty(id,'isusertable')=1 
  

  有人问indid是什么意思? 
  select object_name(id),rowcnt from sysindexes where rowcnt>=@N and indid<=1 and objectproperty(id,'isusertable')=1 即可),非聚集索引则不一定 
  必须。 
    indid=1 查询的就是根据聚集索引键值来查询sysindexs,也就是说不存在聚集索引的表,通过上面的查询是查不出来的。 
   而indid>1(如indid=2、indid=3等) 则代表查询的是根据非聚集索引序号,但没有聚集索引的表还是大量存在的(这不比 
   当然此查询可能有误差,在索引碎片的产生和清理过程确实会存在,只要索引定期维护、重建,那么误差应该不大,甚至不存在误差了

--objectproperty:

http://technet.microsoft.com/zh-cn/library/ms176105.aspx

sysindexes详细内容

http://technet.microsoft.com/zh-cn/library/ms190283.aspx

数据库中的每个索引和表在表中各占一行。该表存储在每个数据库中。

列名 数据类型 描述
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。提供该列是为了向后兼容。

MS SQL查询所有表行数,获取所有数据库名,表名,字段名的更多相关文章

  1. SQL 从指定表筛选指定行信息 获取表行数

    1.获取指定表的行数 --获取表中数据行数 --select max([列名]) from 表名 2.筛选指定表的指定行数据(数据表分页获取) http://www.cnblogs.com/morni ...

  2. SQL SERVER统计服务器所有的数据库(数据库文件)、表(表行数)、字段(各字段)等详细信息

    原文:SQL SERVER统计服务器所有的数据库(数据库文件).表(表行数).字段(各字段)等详细信息 USE STAT GO SET NOCOUNT ON IF EXISTS(SELECT 1 FR ...

  3. SQL Server查看所有表大小、表行数和占用空间信息

    一.查看表名和对应的数据行数select  a.name as '表名',b.rows as '表数据行数'from sysobjects a inner join sysindexes bon a. ...

  4. 查询执行成本高(查询访问表数据行数多)而导致实例 CPU 使用率高是 MySQL 非常常见的问题

    MySQL CPU 使用率高的原因和解决方法_产品性能_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/51587.html ...

  5. Oracle 查询结果集行数分析

    本人曾去某金融软件公司面试,交流中面试官问的一个问题是:"如果有 A.B 两张表,A 表中有 2 条数据,B 表中有 200 条数据,请问 SELECT * FROM A,B 能查出多少条数 ...

  6. 单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。

    https://github.com/alibaba/p3c/blob/master/阿里巴巴Java开发手册(详尽版).pdf 单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表 ...

  7. [SQL]某数据库中查出包含 字段名 的所有表名

    --利用SQL语句来查询字段所在的表 --从某数据库中查出包含 字段名 字段的所有表名 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE ...

  8. php mysql_affected_rows获取sql执行影响的行数

    php mysql_affected_rows函数用于获取执行某一SQL语句(如INSERT,UPDATE 或 DELETE )所影响的行数,本文章向大家介绍php mysql_affected_ro ...

  9. 一种快速统计SQL Server每个表行数的方法

    转载自:http://www.cnblogs.com/kenyang/archive/2013/04/09/3011447.html 我们都知道用聚合函数count()可以统计表的行数.如果需要统计数 ...

随机推荐

  1. 06_Tutorial 6: ViewSets & Routers 视图集与路由器

    1.Tutorial 6: ViewSets & Routers 视图集与路由器 0.文档 https://q1mi.github.io/Django-REST-framework-docum ...

  2. HTML 文字前面怎么加空格

    HTML  写文字开头需要用空格时  就需要在文字前面     使用时两个 为一个字的距离 使用后

  3. public abstract啥时候可以省略?

    父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有方法都实现覆盖了,子类才有创建对象实例的能力,否则子类也必须是抽象类.抽象类中可以有构造方法,是子类在构造子类对象时需要调用父类(抽象类 ...

  4. C/C++ -- 判断字符串中存在中文

    电脑系统中的英文字符串和中文字符最根本的区别就在于: 1.英文的 ASCII 码,其最高位为 0,占一个字节 注:英文的ASCII码范围是在0到127,二进制为(0000 0000 ~ 0111 11 ...

  5. xfce 快捷键 命令整理

    本文链接:https://blog.csdn.net/cFarmerReally/article/details/53375956 转载自:https://my.oschina.net/u/56535 ...

  6. 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest

    目录 Contest Info Solutions A. Berstagram B. The Feast and the Bus C. Trip to Saint Petersburg E. The ...

  7. linux系列(二十三):df命令

    1.命令格式 df [选项] [文件] 2.命令功能 显示指定磁盘文件的可用空间.如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示.默认情况下,磁盘空间将以 1KB 为单位进行显示, ...

  8. NetworkX系列教程(10)-算法之四:拓扑排序与最大流问题

    小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图 ...

  9. TCP拥塞控制算法之NewReno和SACK

    TCP拥塞控制算法之NewReno和SACK 2018年05月23日 19:10:03 吃吃爱学习 阅读数:1446    版权声明:程序媛吃吃的博客 https://blog.csdn.net/m0 ...

  10. x2goserver 连接问题

    The remote proxy closed the connection while negotiating the session. This may be due to the wrong a ...