mssql sqlserver 使用sql脚本查询所有表及其字段的方法分享


摘要:
在sql健康检查时,我们常常需检测整个数据库拥有多少数据表及数据表下面有多少字段这样的需求,下文讲述使用sql脚本获取这些信息的方法,如下所示:
实验环境:sqlserver 2008 R2



实现思路:
1.通过查询 sysobjects 系统表,获取数据库下数据表数量
2.通过查询 syscolumns 系统表,获取数据列的相关信息

 ---获取数据库下数据表信息
   select * from sysobjects where xtype='u' 

 ---获取所有数据列信息
  select a.name as [数据列名称],
b.name as [数据表名称]  
from syscolumns  a 
left join sysobjects  b 
  on a.id=b.id  
   where b.xtype ='u'

—-参数说明:
xtype:
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 : 扩展存储过程