sql server系统表详细说明
SQL Server 用户库中系统表说明
名称 | 说明 | 备注 |
---|---|---|
syscolumns | 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。 | |
syscomments | 包含每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的项。text 列包含原始 SQL 定义语句,其最大大小限制为 4 MB。 | 不应删除 syscomments 中的项。如果手工删除或修改 syscomments 中的项,则对应的存储过程将不能正常工作。若要隐藏或加密存储过程定义,请使用含有 ENCRYPTION 关键字的 Create PROCEDURE。 |
sysdepends | 包含对象(视图、过程和触发器)与对象定义中包含的对象(表、视图和过程)之间的相关性信息。 | |
sysfilegroups | 数据库中的每个文件组在表中占一行。 | 在该表中至少有一项用于主文件组。 |
sysfiles | 数据库中的每个文件在表中占一行。 | 该系统表是虚拟表,不能直接更新或修改。 |
sysfiles1 | 数据库中的每个文件在表中占一行。 | 该系统表是虚拟表,不能直接更新或修改。 |
sysforeignkeys | 包含关于表定义中的 FOREIGN KEY 约束的信息。 | |
sysfulltextcatalogs | 包含关于表定义中的 FOREIGN KEY 约束的信息。 | |
sysfulltextnotify | sysfulltextnotify 视图未在 SQL Server 2000 中记录,但仍可查询它。此视图在 SQL Server 2005 中已删除。 | |
sysindexes | 数据库中的每个索引和表在表中各占一行。 | |
sysindexkeys | 数据库中的每个索引和表在表中各占一行。 | |
sysmembers | 每个数据库角色成员在表中占一行。 | |
sysobjects | 在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。 | 只有在 tempdb 内,每个临时对象才在该表中占一行。 |
syspermissions | 包含有关对数据库内的用户、组和角色授予和拒绝的权限的信息。 | |
sysproperties (sql2005及以上版本使用 sys.extended_properties) | 包含表中列的说明描述信息。 | |
sysprotects | 包含有关已由 GRANT 和 DENY 语句应用于安全帐户的权限的信息。 | |
sysreferences | 包括 FOREIGN KEY 约束定义到所引用列的映射。 | |
systypes | 对于每种系统提供数据类型和用户定义数据类型,均包含一行信息。 | 这些是系统提供的数据类型及其 ID 号。 |
sysusers | 数据库中每个 Microsoft? Windows 用户、Windows 组、Microsoft SQL Server? 用户或 SQL Server 角色在表中占一行。 |
1.syscolumns****表
列名 | 数据类型 | 描述 |
---|---|---|
name | sysname | 列名或过程参数的名称。 |
id | int | 该列所属的表对象 ID,或与该参数关联的存储过程 ID。 |
xtype | tinyint | systypes 中的物理存储类型。 |
typestat | tinyint | 仅限内部使用。 |
xusertype | smallint | 扩展的用户定义数据类型 ID。 |
length | smallint | systypes 中的最大物理存储长度。 |
xprec | tinyint | 仅限内部使用。 |
xscale | tinyint | 仅限内部使用。 |
colid | smallint | 列或参数 ID。 |
xoffset | smallint | 仅限内部使用。 |
bitpos | tinyint | 仅限内部使用。 |
reserved | tinyint | 仅限内部使用。 |
colstat | smallint | 仅限内部使用。 |
cdefault | int | 该列的默认值 ID。 |
domain | int | 该列的规则或 CHECK 约束 ID。 |
number | smallint | 过程分组时(0 表示非过程项)的子过程号。 |
colorder | smallint | 仅限内部使用。 |
autoval | varbinary(255) | 仅限内部使用。 |
offset | smallint | 该列所在行的偏移量;如果为负,表示可变长度行。 |
status | tinyint | 用于描述列或参数属性的位图: 0x08 = 列允许空值。 0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。 0x40 = 参数为 OUTPUT 参数。 0x80 = 列为标识列。 |
type | tinyint | systypes 中的物理存储类型。 |
usertype | smallint | systypes 中的用户定义数据类型 ID。 |
printfmt | varchar(255) | 仅限内部使用。 |
prec | smallint | 该列的精度级别。 |
scale | int | 该列的小数位数。 |
iscomputed | int | 表示是否已计算该列的标志: 0 = 未计算。 1 = 已计算。 |
isoutparam | int | 表示该过程参数是否是输出参数: 1 = 真。 0 = 假。 |
isnullable | int | 表示该列是否允许空值: 1 = 真。 0 = 假。 |
2.syscomments****表
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 该文本适用的对象 ID。 |
number | smallint | 如果进行分组,则为过程分组内的号码。0 表示不是过程的项。 |
colid | smallint | 超过 4,000 个字符的对象定义的行序列号。 |
status | smallint | 仅限内部使用。 |
ctext | varbinary(8000) | SQL 定义语句的实际文本。 |
texttype | smallint | 0 = 用户提供的注释。 1 = 系统提供的注释。 4 = 加密的注释。 |
language | smallint | 仅限内部使用。 |
encrypted | bit | 表示过程是否已加密。 0 = 未加密。 1 = 已加密。 |
compressed | bit | 表示过程是否已压缩。 0 = 未压缩。 1 = 已压缩。 |
text | nvarchar(4000) | SQL 定义语句的实际文本。 |
3.sysdepends****表
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 对象 ID。 |
depid | int | 相关对象 ID。 |
number | smallint | 过程号。 |
depnumber | smallint | 相关过程号。 |
status | smallint | 内部状态信息。 |
depdbid | smallint | 保留。 |
depsiteid | smallint | 保留。 |
selall | bit | 如果对象用在 Select * 语句中,则打开。 |
resultobj | bit | 如果正在更新对象,则打开。 |
readobj | bit | 如果正在读取对象,则打开。 |
4.sysfilegroups****表
列名 | 数据类型 | 描述 |
---|---|---|
groupid | smallint | 每个数据库的唯一组标识号。 |
allocpolicy | smallint | 保留。 |
status | int | 0x8 = READ ONLY 0x10 = DEFAULT |
groupname | sysname | 文件组的名称。 |
5.sysfiles****表
列名 | 数据类型 | 描述 |
---|---|---|
fileid | smallint | 每个数据库的唯一文件标识号。 |
groupid | smallint | 文件组标识号。 |
size | int | 文件大小(以 8 KB 页为单位)。 |
maxsize | int | 最大文件大小(以 8 KB 页为单位)。0 值表示不增长,–1 值表示文件应一直增长到磁盘已满。 |
growth | int | 数据库的增长大小。0 值表示不增长。根据状态的值,可以是页数或文件大小的百分比。如果 status 包含 0x100000,则 growth 是文件大小的百分比;否则,它是页数。 |
status | int | growth 值(以兆字节 (MB) 或千字节 (KB) 为单位)的状态位。 0x1 = 默认设备。 0x2 = 磁盘文件。 0x40 = 日志设备。 0x80 = 自上次备份后已写入文件。 0x4000 = 由 Create DATABASE 语句隐性创建的设备。 0x8000 = 在数据库创建过程中创建的设备。 0x100000 = 按百分比而不是按页数增长。 |
perf | int | 保留。 |
name | nchar(128) | 文件的逻辑名称。 |
filename | nchar(260) | 物理设备的名称,包括文件的完整路径。 |
6.sysfiles1****表
列名 | 数据类型 | 描述 |
---|---|---|
status | int | growth 值(以兆字节 (MB) 或千字节 (KB) 为单位)的状态位。 0x1 = 默认设备。 0x2 = 磁盘文件。 0x40 = 日志设备。 0x80 = 自上次备份后已写入文件。 0x4000 = 由 Create DATABASE 语句隐性创建的设备。 0x8000 = 在数据库创建过程中创建的设备。 0x100000 = 按百分比而不是按页数增长。 |
fileid | smallint | 每个数据库的唯一文件标识号。 |
name | nchar(128) | 文件的逻辑名称。 |
filename | nchar(260) | 物理设备的名称,包括文件的完整路径。 |
7.sysforeignkeys****表
列名 | 数据类型 | 描述 |
---|---|---|
constid | int | FOREIGN KEY 约束的 ID。 |
fkeyid | int | 具有 FOREIGN KEY 约束的表对象 ID。 |
rkeyid | int | 在 FOREIGN KEY 约束中引用的表对象 ID。 |
fkey | smallint | 正在引用的列 ID。 |
rkey | smallint | 已引用的列 ID。 |
keyno | smallint | 该列在引用列列表中的位置。 |
8.sysfulltextcatalogs****表
列名 | 数据类型 | 描述 |
---|---|---|
ftcatid | smallint | 全文目录的标识符。 |
name | sysname | 用户提供的全文目录名。 |
status | smallint | 保留;仅限内部使用。 |
path | nvarchar(260) | 用户提供的根路径。NULL 值表示用户未提供路径,因而使用了默认(安装)路径。 |
9.sysindexes****表
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 表 ID(如果 indid = 0 或 255)。否则为索引所属表的 ID。 |
status | int | 内部系统状态信息。 |
first | binary(6) | 指向第一页或根页的指针。 |
indid | smallint | 索引 ID: 1 = 聚集索引 >1 = 非聚集 255 = 具有 text 或 image 数据的表条目 |
root | binary(6) | 如果 indid >= 1 和 < 255,root 是指向根页的指针。如果 indid = 0 或 indid = 255,root 是指向最后一页的指针。 |
minlen | smallint | 最小行大小。 |
keycnt | smallint | 键的数目。 |
groupid | smallint | 在其上创建对象的文件组 ID。 |
dpages | int | 如果 indid = 0 或 indid = 1,dpages 是已用数据页的计数。如果 indid = 255,其设置为 0。否则是已用索引页的计数。 |
reserved | int | 如果 indid = 0 或 indid = 1,reserved 是分配给所有索引和表数据的页计数。如果 indid = 255,reserved 是分配给 text 或 image 数据的页计数。否则是分配给索引的页计数。 |
used | int | 如果 indid = 0 或 indid = 1,used 是用于所有索引和表数据的总页数。如果 indid = 255,used 是用于 text 或 image 数据的页计数。否则是用于索引的页计数。 |
rowcnt | bigint | 基于 indid = 0 和 indid = 1 的数据级行计数。如果 indid = 255,rowcnt 设置为 0。 |
rowmodctr | int | 对自上次更新表的统计后插入、删除或更新行的总数进行计数。 |
xmaxlen | smallint | 最大行大小。 |
maxirow | smallint | 最大非叶索引行大小。 |
OrigFillFactor | tinyint | 创建索引时使用的起始填充因子值。不保留该值;然而,如果需要重新创建索引但记不住当初使用的填充因子,则该值可能很有帮助。 |
reserved1 | tinyint | 保留。 |
reserved2 | int | 保留。 |
FirstIAM | binary(6) | 保留。 |
impid | smallint | 保留。索引实现标志。 |
lockflags | smallint | 用于约束经过考虑的索引锁粒度。例如,对于本质上是只读的查找表,可以将其设置为仅进行表级锁定以使锁定成本减到最小。 |
pgmodctr | int | 保留。 |
keys | varbinary(816) | 组成索引键的列 ID 列表。 |
name | sysname | 表名(如果 indid = 0 或 255)。否则为索引的名称。 |
statblob | image | 统计 BLOB。 |
maxlen | int | 保留。 |
rows | int | 基于 indid = 0 和 indid = 1的数据级行数,该值对于 indid >1 重复。如果 indid = 255,rows 设置为 0。提供该列是为了向后兼容。 |
10.sysindexkeys****表
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 表 ID。 |
indid | smallint | 索引 ID。 |
colid | smallint | 列 ID。 |
keyno | smallint | 该列在索引中的位置。 |
11.sysmembers****表
列名 | 数据类型 | 描述 |
---|---|---|
memberuid | smallint | 角色成员的用户 ID。 |
groupuid | smallint | 角色的用户 ID。 |
12.sysobjects****表
列名 | 数据类型 | 描述 |
---|---|---|
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 = 扩展存储过程 |
uid | smallint | 所有者对象的用户 ID。 |
info | smallint | 保留。仅限内部使用。 |
status | int | 保留。仅限内部使用。 |
base_schema_ver | int | 保留。仅限内部使用。 |
replinfo | int | 保留。供复制使用。 |
parent_obj | int | 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 |
crdate | datetime | 对象的创建日期。 |
ftcatid | smallint | 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。 |
schema_ver | int | 版本号,该版本号在每次表的架构更改时都增加。 |
stats_schema_ver | int | 保留。仅限内部使用。 |
type | char(2) | 对象类型。可以是下列值之一: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束 L = 日志 P = 存储过程 R = 规则 RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 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 | 保留。 |
13.syspermissions****表
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 对象权限的对象 ID;0 表示语句权限。 |
grantee | smallint | 受权限影响的用户、组或角色的 ID。 |
grantor | smallint | 被授予或废除权限的用户、组或角色的 ID。 |
actadd | smallint | 仅限内部使用。 |
actmod | smallint | 仅限内部使用。 |
seladd | varbinary(4000) | 仅限内部使用。 |
selmod | varbinary(4000) | 仅限内部使用。 |
updadd | varbinary(4000) | 仅限内部使用。 |
updmod | varbinary(4000) | 仅限内部使用。 |
refadd | varbinary(4000) | 仅限内部使用。 |
refmod | varbinary(4000) | 仅限内部使用。 |
14.sysproperties****表
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 该列所属的表对象 ID,或与该参数关联的存储过程 ID。 |
colid | smallint | 列或参数 ID。 |
type | tinyint | 暂缺。 |
name | sysname | 暂缺。 |
value | sql_variant | 说明描述信息。 |
15.sysprotects****表
列名 | 数据类型 | 描述 |
---|---|---|
id | int | 将这些权限应用于的对象 ID。 |
uid | smallint | 将这些权限应用于的用户或组的 ID。 |
action | tinyint | 可以有下列权限之一: 26 = REFERENCES 178 = Create FUNCTION 193 = Select 195 = Insert 196 = Delete 197 = Update 198 = Create TABLE 203 = Create DATABASE 207 = Create VIEW 222 = Create PROCEDURE 224 = EXECUTE 228 = BACKUP DATABASE 233 = Create DEFAULT 235 = BACKUP LOG 236 = Create RULE |
protecttype | tinyint | 可以有下列值: 204 = GRANT_W_GRANT 205 = GRANT 206 = REVOKE |
columns | varbinary(4000) | 将这些 Select 或 Update 权限应用于的列的位图。位 0 表示所有的列,位 1 表示权限应用于该列,NULL 表示没有信息。 |
grantor | smallint | 发出 GRANT 或 REVOKE 权限的用户的用户 ID。 |
16.sysreferences****表
列名 | 数据类型 | 描述 |
---|---|---|
constid | int | FOREIGN KEY 约束的 ID。 |
fkeyid | int | 引用表的 ID。 |
rkeyid | int | 被引用表的 ID。 |
rkeyindid | smallint | 涵盖被引用键列的被引用表上唯一索引的索引 ID。 |
keycnt | smallint | 键中的列数。 |
forkeys | varbinary(32) | 仅限内部使用。 |
refkeys | varbinary(32) | 仅限内部使用。 |
fkeydbid | smallint | 保留。 |
rkeydbid | smallint | 保留。 |
fkey1 | smallint | 引用列的列 ID。 |
fkey2 | smallint | 引用列的列 ID。 |
fkey3 | smallint | 引用列的列 ID。 |
fkey4 | smallint | 引用列的列 ID。 |
fkey5 | smallint | 引用列的列 ID。 |
fkey6 | smallint | 引用列的列 ID。 |
fkey7 | smallint | 引用列的列 ID。 |
fkey8 | smallint | 引用列的列 ID。 |
fkey9 | smallint | 引用列的列 ID。 |
fkey10 | smallint | 引用列的列 ID。 |
fkey11 | smallint | 引用列的列 ID。 |
fkey12 | smallint | 引用列的列 ID。 |
fkey13 | smallint | 引用列的列 ID。 |
fkey14 | smallint | 引用列的列 ID。 |
fkey15 | smallint | 引用列的列 ID。 |
fkey16 | smallint | 引用列的列 ID。 |
rkey1 | smallint | 引用列的列 ID。 |
rkey2 | smallint | 引用列的列 ID。 |
rkey3 | smallint | 引用列的列 ID。 |
rkey4 | smallint | 引用列的列 ID。 |
rkey5 | smallint | 引用列的列 ID。 |
rkey6 | smallint | 引用列的列 ID。 |
rkey7 | smallint | 引用列的列 ID。 |
rkey8 | smallint | 引用列的列 ID。 |
rkey9 | smallint | 引用列的列 ID。 |
rkey10 | smallint | 引用列的列 ID。 |
rkey11 | smallint | 引用列的列 ID。 |
rkey12 | smallint | 引用列的列 ID。 |
rkey13 | smallint | 引用列的列 ID。 |
rkey14 | smallint | 引用列的列 ID。 |
rkey15 | smallint | 引用列的列 ID。 |
rkey16 | smallint | 引用列的列 ID。 |
17.systypes****表
列名 | 数据类型 | 描述 |
---|---|---|
name | sysname | 数据类型名称。 |
xtype | tinyint | 物理存储类型。 |
status | tinyint | 仅限内部使用。 |
xusertype | smallint | 扩展用户类型。 |
length | smallint | 数据类型的物理长度。 |
xprec | tinyint | 服务器所使用的内部精度。不能在查询中使用。 |
xscale | tinyint | 服务器所使用的内部小数位数。不能在查询中使用。 |
tdefault | int | 对此数据类型进行完整性检查的存储过程的 ID。 |
domain | int | 对此数据类型进行完整性检查的存储过程的 ID。 |
uid | smallint | 数据类型创建者的用户 ID。 |
reserved | smallint | 仅限内部使用。 |
usertype | smallint | 用户类型 ID。 |
variable | bit | 可变长度数据类型为 1;否则为 0。 |
allownulls | bit | 指出此数据类型的默认为空性。如果 Create 或 Alter TABLE 指定了为空性,那么该值将替代此数据类型的默认为空性。 |
type | tinyint | 物理存储数据类型。 |
printfmt | varchar(255) | 保留。 |
prec | smallint | 此数据类型的精度级别。 |
scale | tinyint | 此数据类型的小数位数(根据精度)。 |
18.sysusers****表
列名 | 数据类型 | 描述 |
---|---|---|
uid | smallint | 用户 ID,在此数据库中是唯一的。1 是数据库所有者。 |
status | smallint | 仅限内部使用。 |
name | sysname | 用户名或组名,在此数据库中是唯一的。 |
sid | varbinary(85) | 此条目的安全性标识符。 |
roles | varbinary(2048) | 仅限内部使用。 |
createdate | datetime | 帐户的添加日期。 |
updatedate | datetime | 帐户的上次修改日期。 |
altuid | smallint | 仅限内部使用。 |
password | varbinary(256) | 仅限内部使用。 |
gid | smallint | 此用户所属的组 ID。如果 uid = gid,那么此条目就定义一个组。 |
environ | varchar(255) | 保留。 |
hasdbaccess | int | 如果该帐户有数据库访问权限,则为 1。 |
islogin | int | 如果该帐户是有登录帐户的 Windows 组、Windows 用户或 SQL Server 用户,则为 1。 |
isntname | int | 如果该帐户是 Windows 组或 Windows 用户,则为 1。 |
isntgroup | int | 如果该帐户是 Windows 组,则为 1。 |
isntuser | int | 如果该帐户是 Windows 用户,则为 1。 |
issqluser | int | 如果该帐户是 SQL Server 用户,则为 1。 |
isaliased | int | 如果该帐户以另一个用户为别名,则为 1。 |
issqlrole | int | 如果该帐户是 SQL Server 角色,则为 1。 |
isapprole | int | 如果该帐户是应用程序角色,则为 1。 |