模型数据库的18个系统表将被拷贝到每一个新数据库中。事实上,Model数据库的全部内容都将被拷贝到新创建的数据库中。如果向Model数据库中添加新对象(表、视图、存储过程、用户),它们一样也会被拷贝到新数据库中。
这18个表表示为管理每个数据库所必需的全部信息。在本附录中包括关于这18个表的解释,以及用来查询或更新它们的存储过程,和一些特殊的未归档内容。
对象表包含管理用户和系统表、视图、存储过程、用户自定义数据类型、默认值、规则、约束条件、触发器和索引等所必需的全部信息。
如表B-1所示,syscolumns表为每个表和视图的列和每个存储过程参数包含一行。
表B-1 syscolumns表
|
列 |
数据类型 |
描 述 |
|
id |
int |
本列所属于的表/视图的ID或本参数所关联的存储过程的ID |
|
number |
smallint |
过程号。用于当几个过程有相同名字并用数字标识时(0指非过程项) |
|
colid |
smallint |
列ID |
|
status |
tinyint |
用来描述列或参数的一个属性的位图 |
|
type |
tinyint |
物理存储类型(拷贝自systypes) |
|
length |
smallint |
数据的物理长度(拷贝自systypes或由用户提供) |
|
offset |
smallint |
此列在行中偏移;如为负值则是可变长度列 |
|
usertype |
smallint |
用户类型ID(拷贝自systypes) |
|
cdefault |
int |
为此列产生默认值的存储过程的ID |
|
domain |
int |
包含此列的规则的存储过程的ID |
|
name |
sysname |
列名字(长度是128字符) |
|
printfmt |
varchar(255) |
保留 |
|
prec |
smallint |
此列的精度级别 |
|
scale |
int |
此列的比例 |
|
xtype |
tinyint |
来自systypes的物理存储类型 |
续 表
|
列 |
数据类型 |
描 述 |
|
typestat |
tinyint |
仅内部使用 |
|
xusertype |
smallint |
扩展用户数据类型的ID |
|
xprec |
tinyint |
仅内部使用 |
|
xscale |
tinyint |
仅内部使用 |
|
xoffset |
tinyint |
仅内部使用 |
|
bitpos |
tinyint |
仅内部使用 |
|
reserved |
tinyint |
仅内部使用 |
|
colorder |
smallint |
仅内部使用 |
|
autoval |
varbinary(8000) |
仅内部使用 |
|
iscomputed |
int |
指示一列已经被计算(1)或未被计算(0) |
|
isoutparam |
int |
指示存储过程参数是输出参数(1)或否(0) |
|
isnullable |
int |
指示该列是否接受定值;1指接受,0不接受 |
使用syscolumns的存储过程:
n sp_articlecolumn:修改一个部件中存在的一列。
n sp_bindefault:将一个默认值绑定到一列/数据类型。
n sp_bindrule:将一条规则绑定到一列/数据类型。
n sp_column_privileges:显示指定表的当前权限。
n sp_columns:显示指定表的列的列表。
n sp_droptype:删除一个用户自定义数据类型。
n sp_fkeys:显示外键信息。
n sp_help:显示一数据库对象的信息。
n sp_helparticle:显示指定部件的信息。
n sp_helparticlecolumns:显示部件的所有的列。
n sp_helprotect:显示指定的用户/组/对象的权限。
n sp_pkeys:显示主键信息。
n sp_rename:重命名一个数据库对象。
n sp_special_columns:显示唯一标识行的最优列名字。
n sp_sproc_columns:显示指定存储过程的列信息。
n sp_statistics:显示指定表的索引信息。
n sp_tables:显示将被查询的对象的列表。
n sp_unbindefaut:解除一个默认值对一列/数据类型的绑定。
n sp_unbindrule:解除一条规则对一列/数据类型的绑定。
syscomments表,如表B-2所示,为每一个存储过程、触发器、视图、规则、CHECK约束和DEFAULT约束包含一项或多项。此表包含每个对象的源代码。text列包含代码并有255