Sql server 系统表

时间:2024-01-01 20:56:27

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。