Sql Server 查询全库表信息

通过(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。

ms177596.note(zh-cn,SQL.105).gif重要提示: 如果使用以下任何一个 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

标识为仅供参考。不提供支持。不保证以后的兼容性。