1.系统表sysobjects
在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。
| 列名 | 数据类型 | 说明 | 
|---|---|---|
| 
 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  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
参考 sys.sysobjects (Transact-SQL)
2.syscolumns
为每个表和视图中的每列返回一行,并为数据库中的存储过程的每个参数返回一行。
| 列名 | 数据类型 | 说明 | 
|---|---|---|
| 
 name  | 
 sysname  | 
 列名或过程参数的名称。  | 
| 
 id  | 
 int  | 
 此列所属表的对象 ID,或者与此参数关联的存储过程的 ID。  | 
| 
 xtype  | 
 tinyint  | 
 sys.types 中的物理存储类型。  | 
| 
 typestat  | 
 tinyint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 xusertype  | 
 smallint  | 
 扩展的用户定义数据类型的 ID。如果数据类型的数字超过 32,767,则溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。  | 
| 
 length  | 
 smallint  | 
 sys.types 中的最大物理存储长度。  | 
| 
 xprec  | 
 tinyint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 xscale  | 
 tinyint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 colid  | 
 smallint  | 
 列 ID 或参数 ID。  | 
| 
 xoffset  | 
 smallint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 bitpos  | 
 tinyint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 reserved  | 
 tinyint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 colstat  | 
 smallint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 cdefault  | 
 int  | 
 此列的默认值的 ID。  | 
| 
 domain  | 
 int  | 
 此列的规则或 CHECK 约束的 ID。  | 
| 
 number  | 
 smallint  | 
 过程分组时的子过程号。 0 = 非过程项  | 
| 
 colorder  | 
 smallint  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 autoval  | 
 varbinary(8000)  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 offset  | 
 smallint  | 
 此列所在行的偏移量。  | 
| 
 collationid  | 
 int  | 
 列的排序规则的 ID。对于非字符列,此值为 NULL。  | 
| 
 status  | 
 tinyint  | 
 用于说明列或参数的属性的位图: 0x08 = 列允许空值。 0x10 = 添加 varchar 或 varbinary 列时,执行 ANSI 填充。保留 varchar 列的尾随空格以及 varbinary 列的尾随零。 0x40 = 参数为 OUTPUT 参数。 0x80 = 列为标识列。  | 
| 
 type  | 
 tinyint  | 
 sys.types 中的物理存储类型。  | 
| 
 usertype  | 
 smallint  | 
 sys.types 中的用户定义数据类型的 ID。如果数据类型数超过 32767,则会发生溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。  | 
| 
 printfmt  | 
 varchar(255)  | 
 标识为仅供参考。不提供支持。不保证以后的兼容性。  | 
| 
 prec  | 
 smallint  | 
 此列的精度级别。 -1 = xml 或大值类型。  | 
| 
 scale  | 
 int  | 
 此列的小数位数。 NULL = 数据类型不是数值。  | 
| 
 iscomputed  | 
 int  | 
 指示列是否为计算列的标志: 0 = 非计算列。 1 = 计算列。  | 
| 
 isoutparam  | 
 int  | 
 指示过程参数是否为输出参数: 1 = True 0 = False  | 
| 
 isnullable  | 
 int  | 
 指示列是否允许空值: 1 = True 0 = False  | 
| 
 collation  | 
 sysname  | 
 列的排序规则的名称。如果不是基于字符的列,则为 NULL。  | 
参考 sys.syscolumns (Transact-SQL)
删除某数据库内的表
declare dlist cursor for
 select   name   from   sysobjects   where xtype='U'
 open dlist
declare @n varchar(4000)
fetch next from dlist into @n 
while @@fetch_status=0
 begin
        declare @es varchar(4000)
        set @es='DROP table  '+@n
         exec( @es)   
  fetch next from dlist into @n 
 end
close dlist
DEALLOCATE dlist