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 |
请发表评论