天天看点

绿色SQL Server原理(13)枚举SQLServer数据库内部对象

每个数据库中有一个sysobjects表来存放数据库内的对象。  

在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在  tempdb  内,每个临时对象才在该表中占一行。  

列名  数据类型  描述    

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  =  扩展存储过程  

如果要枚举用户表,只要执行SQL语句:

select * from sysobjects where xtype='U'

如果枚举系统表,只要执行SQL语句:

select * from sysobjects where xtype='S'

其它对象依此类推。