通过(sys.sysobjects)对象表,查询全库表的基础信息 :
SELECT name AS 对象名, info AS 字段数, CASE WHEN xtype = 'C' THEN 'CHECK 约束' WHEN xtype = 'D' THEN '默认值约束' WHEN xtype = 'F' THEN '外键约束' WHEN xtype = 'L' THEN '日志' WHEN xtype = 'FN' THEN '标量函数' WHEN xtype = 'IF' THEN '内嵌表函数' WHEN xtype = 'P' THEN '存储过程' WHEN xtype = 'PK' THEN '主键约束(类型是 K)' WHEN xtype = 'RF' THEN '复制筛选存储过程' WHEN xtype = 'S' THEN '系统表' WHEN xtype = 'TF' THEN '表函数' WHEN xtype = 'TR' THEN '触发器' WHEN xtype = 'U' THEN '用户表' WHEN xtype = 'UQ' THEN '唯一约束(类型是 K)' WHEN xtype = 'V' THEN '视图' WHEN xtype = 'X' THEN '扩展存储过程' END AS 对象类型, CASE WHEN ftcatid = 0 THEN '否' WHEN ftcatid = 1 THEN '是' END AS 索引, crdate AS 创建日期, CONVERT(char(19), getdate(), 120) AS 本次索引时间 FROM sysobjects ORDER BY name
======================
这里查询的包含了系统表,如果要过滤掉系统表请加上where条件!
如只要用户表和用户视图: WHERE (xtype = ‘U’) or (xtype = ‘V’)
xtype 可以是以下对象类型之一:
AF = 聚合函数 (CLR)
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
FS = 程序集 (CLR) 标量函数
FT = 程序集 (CLR) 表值函数
IF = 内联表函数
IT = 内部表
P = 存储过程
PC = 程序集 (CLR) 存储过程
PK = PRIMARY KEY 约束(类型为 K)
RF = 复制筛选存储过程
S = 系统表
SN = 同义词
SQ = 服务队列
TA = 程序集 (CLR) DML 触发器
TF = 表函数
TR = SQL DML 触发器
TT = 表类型
U = 用户表
UQ = UNIQUE 约束(类型为 K)
V = 视图
X = 扩展存储过程
================================================================================
重要提示: 将此 SQL Server 2000 系统表作为一个视图包含进来是为了保持向后兼容性。建议您改用当前的 SQL Server 系统视图。若要查找一个或多个等效系统视图,请参阅将 SQL Server 2000 系统表映射到 SQL Server 2005 系统视图。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
列名 数据类型 说明
name
sysname
对象名
id
int
对象标识号
xtype
char(2)
对象类型。可以是以下对象类型之一:
AF = 聚合函数 (CLR)
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
FS = 程序集 (CLR) 标量函数
FT = 程序集 (CLR) 表值函数
IF = 内联表函数
IT = 内部表
P = 存储过程
PC = 程序集 (CLR) 存储过程
PK = PRIMARY KEY 约束(类型为 K)
RF = 复制筛选存储过程
S = 系统表
SN = 同义词
SQ = 服务队列
TA = 程序集 (CLR) DML 触发器
TF = 表函数
TR = SQL DML 触发器
TT = 表类型
U = 用户表
UQ = UNIQUE 约束(类型为 K)
V = 视图
X = 扩展存储过程
uid
smallint
对象所有者的架构 ID。
对于从旧版 SQL Server 升级的数据库,架构 ID 等于所有者的用户 ID。
重要提示: 如果使用以下任何一个 SQL Server DDL 语句,则必须使用 sys.objects 目录视图而不是 sys.sysobjects。 CREATE | ALTER | DROP USER CREATE | ALTER | DROP ROLE CREATE | ALTER | DROP APPLICATION ROLE CREATE SCHEMA ALTER AUTHORIZATION ON OBJECT
如果用户数和角色数超过 32,767,则发生溢出或返回 NULL。
有关详细信息,请参阅查询 SQL Server 系统目录。
info
smallint
标识为仅供参考。不提供支持。不保证以后的兼容性。
status
int
标识为仅供参考。不提供支持。不保证以后的兼容性。
base_schema_ver
int
标识为仅供参考。不提供支持。不保证以后的兼容性。
replinfo
int
标识为仅供参考。不提供支持。不保证以后的兼容性。
parent_obj
int
父对象的对象标识号。例如,表 ID(如果父对象是触发器或约束)。
crdate
datetime
对象的创建日期。
ftcatid
smallint
注册为使用全文索引的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。
schema_ver
int
在每次更改表的架构时都会增加的版本号。始终返回 0。
stats_schema_ver
int
标识为仅供参考。不提供支持。不保证以后的兼容性。
type
char(2)
对象类型。可以是下列值之一:
AF = 聚合函数 (CLR)
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
FS = 程序集 (CLR) 标量函数
FT = 程序集 (CLR) 表值函数 IF = 内联表函数
IT – 内部表
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
PC = 程序集 (CLR) 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
SN = 同义词
SQ = 服务队列
TA = 程序集 (CLR) DML 触发器
TF = 表函数
TR = SQL DML 触发器
TT = 表类型
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
标识为仅供参考。不提供支持。不保证以后的兼容性。