天天看點

sql server系統表詳細說明

下列這些系統表都是存放在master資料庫下的Views中,而不是在Tables中。

系統表

資料庫

功能

sysaltfiles    

主資料庫

儲存資料庫的檔案

syscharsets    

字元集與排序順序

sysconfigures     

配置選項

syscurconfigs   

目前配置選項

sysdatabases   

伺服器中的資料庫

syslanguages   

語言

syslogins   

登陸帳号資訊

sysoledbusers   

連結伺服器登陸資訊

sysprocesses   

程序

sysremotelogins 

遠端登入帳号

syscolumns   

每個資料庫

sysconstrains   

限制

sysfilegroups   

檔案組

sysfiles   

檔案

sysforeignkeys  

外部關鍵字

sysindexs   

索引

sysmenbers 

角色成員

sysobjects

所有資料庫對象

syspermissions 

權限

systypes 

使用者定義資料類型

sysusers 

使用者

在特殊情況下,包含與資料庫中的檔案相對應的行。該表存儲在 master 資料庫中。

列名

資料類型

描述

fileid

smallint

每個資料庫的唯一檔案辨別号。

groupid

檔案組辨別号。

size

int

檔案大小(以 8 KB 頁為機關)。

maxsize

最大檔案大小(以 8 KB 頁為機關)。0 值表示不增長,–1 值表示檔案應一直增長到磁盤已滿。

growth

資料庫的增長大小。0 值表示不增長。根據狀态的值,可以是頁數或檔案大小的百分比。如果 status 為 0x100000,則growth 是檔案大小的百分比;否則是頁數。

status

僅限内部使用。

perf

保留。

dbid

該檔案所屬資料庫的資料庫辨別号。

name

nchar(128)

檔案的邏輯名稱。

filename

nchar(260)

實體裝置的名稱,包括檔案的完整路徑。

每個字元集在表中各占一行,表中還包含定義供 Microsoft? SQL Server? 使用的排序次序。排序次序中的一個在 sysconfigures 中标記為預設排序次序,該次序是實際使用的唯一次序。

type

該行表示的實體類型。1001 是字元集;2001 是排序次序。

id

tinyint

字元集或排序次序的唯一 ID。注意排序次序和字元集不能共享相同的 ID 号。保留從 1 到 240 的 ID 範圍供 SQL Server 使用。

csid

如果該行表示字元集,則不使用該字段。如果該行表示排序次序,則該字段是在其上生成排序次序的字元集 ID。假設具有該 ID 的字元集行存在于該表中。

内部系統狀态資訊位。

sysname

字元集或排序次序的唯一名稱。該字段必須隻包含字母 A-Z 或 a-z、數字 0 – 9 和下劃線 (_)。必須以字母開頭。

description

nvarchar(255)

字元集或排序次序功能的可選描述。

binarydefinition

varbinary(255)

definition

image

字元集或排序次序的内部定義。該字段中的資料結構取決于類型。

使用者設定的每個配置選項在表中各占一行。 sysconfigures 包含最近啟動 Microsoft? SQL Server? 前定義的配置選項,還包含最近啟動後設定的所有動态配置選項。該表隻位于 master 資料庫中。

value

變量的使用者可修改值(僅在已執行 RECONFIGURE 後由 SQL Server 使用)。

config

配置變量号。

comment

對配置選項的解釋。

表示選項狀态的位圖。可能的值包括:

0 = 靜态(該設定在伺服器重新啟動時生效)。

1 = 動态(該變量在 RECONFIGURE 語句執行時生效)。

2 = 進階(僅當設定了顯示進階選項時才顯示該變量)。

3 = 動态和進階。

使用者可修改的變量值(僅在已執行 RECONFIGURE 的情況下由 Microsoft? SQL Server? 使用)。

Microsoft? SQL Server? 上的每個資料庫在表中占一行。最初安裝 SQL Server 時, sysdatabases 包含 master 、 model 、 msdb 、 mssqlweb和 tempdb 資料庫的項。該表隻存儲在 master 資料庫中。

資料庫的名稱。

資料庫 ID。

sid

varbinary(85)

資料庫建立者的系統 ID。

mode

用于建立資料庫時在内部鎖定該資料庫。

狀态位,其中某些狀态位可由使用者使用sp_dboption ( read only 、 dbo use only 、 single user 等)進行設定:

1 = autoclose ;使用 sp_dboption 設定。

4 = select into/bulkcopy ;使用sp_dboption 設定。

8 = trunc. log on chkpt ;使用sp_dboption 設定。

16 = torn page detection ,使用sp_dboption 設定。

32 = loading 。

64 = pre recovery 。

128 = recovering 。

256 = not recovered 。

512 = offline ;使用 sp_dboption 設定。

1024 = read only ;使用 sp_dboption 設定。

2048 = dbo use only ;使用

sp_dboption 設定。

4096 = single user ;使用 sp_dboption 設定。

32768 = emergency mode 。 

4194304 = autoshrink 。 

1073741824 = cleanly shutdown 。

可以同時打開多個位。

status2

16384 = ANSI null default ;使用sp_dboption 設定。

65536 = concat null yields null ,使用sp_dboption 設定。

131072 = recursive triggers ,使用sp_dboption 設定。

1048576 = default to local cursor ,使用sp_dboption 設定。

8388608 = quoted identifier ,使用

33554432 = cursor close on commit ,使用 sp_dboption 設定。

67108864 = ANSI nulls ,使用sp_dboption 設定。

268435456 = ANSI warnings ,使用sp_dboption 設定。

536870912 = full text enabled ,使用 

sp_fulltext_database 設定。

crdate

datetime

建立日期。

reserved

留作以後使用。

category

包含用于複制的資訊位圖:

1 = 已釋出。

2 = 已訂閱。

4 = 合并已釋出。

8 = 合并已訂閱。

cmptlevel

nvarchar(260)

資料庫主檔案的作業系統路徑和名稱。

version

建立資料庫時使用的 SQL Server 代碼内部版本号。僅供 SQL Server 工具在内部用于更新處理。

出現在 Microsoft? SQL Server? 中的每種語言在表中各占一行。雖然美國英語不在 syslanguages 内,但該表始終可由 SQL Server 使用。該表隻存儲在 master 資料庫中。

langid

唯一語言 ID。

dateformat

nchar(3)

日期順序(如 DMY)。

datefirst

一周的第一天:1 表示星期一,2 表示星期二,依此類推,直到 7 表示星期日。

upgrade

留作系統使用。

正式語言名稱(例如,fran?ais)。

alias

備用語言名稱(如 French)。

months

nvarchar(372)

按從一月到十二月的順序排列的用逗号分隔的月份全稱清單,每個名稱最多包含 20 個字元。

shortmonths

varchar(132)

按從一月到十二月的順序排列的用逗号分隔的縮寫月份名稱清單,每個名稱最多包含 9 個字元。

days

nvarchar(217)

按從一月到十二月的順序排列的用逗号分隔的天名稱清單,每個名稱最多包含 30 個字元。

lcid

此種語言的 Microsoft Windows NT? 區域設定 ID。

mslangid

SQL Server 消息組 ID。

安裝了 SQL Server 提供的三十三種語言。下面是語言清單。

用英語表示的名稱

NT LCID

SQL Server 消息組 ID

English

1033

German

1031

French

1036

Japanese

1041

Danish

1030

Spanish

3082

Italian

1040

Dutch

1043

Norwegian

2068

Portuguese

2070

Finnish

1035

Swedish

1053

Czech

1029

Hungarian

1038

Polish

1045

Romanian

1048

Croatian

1050

Slovak

1051

Slovene

1060

Greek

1032

Bulgarian

1026

Russian

1049

Turkish

1055

British English

2057

Estonian

1061

Latvian

1062

Lithuanian

1063

Brazilian

1046

Traditional Chinese

1028

Korean

1042

Simplified Chinese

2052

Arabic

1025

Thai

1054

每個登入帳戶在表中占一行。

安全辨別符。

createdate

添加登入的日期。

updatedate

更新登入的日期。

accdate

totcpu

totio

spacelimit

timelimit

resultlimit

varchar(30)

使用者的登入 ID。

dbname

nvarchar(128)

建立連接配接時,使用者的預設資料庫名。

password

使用者的加密密碼(可以是 NULL)。

language

使用者的預設語言。

denylogin

如果登入是 Microsoft? Windows NT? 使用者或組且已被拒絕通路,則為 1。

hasaccess

如果已授權登入通路伺服器,則為 1。

isntname

如果登入是 Windows NT 使用者或組,則為 1;如果登入是 Microsoft SQL Server? 登入,則為 0。

isntgroup

如果登入是 Windows NT 組,則為 1。

isntuser

如果登入是 Windows NT 使用者,則為 1。

sysadmin

如果登入是 sysadmin 伺服器角色成員,則為 1。

securityadmin

如果登入是 securityadmin 伺服器角色成員,則為 1。

serveradmin

如果登入是 serveradmin 固定伺服器角色成員,則為 1。

setupadmin

如果登入是 setupadmin 固定伺服器角色成員,則為 1。

processadmin

如果登入是 processadmin 固定伺服器角色成員,則為 1。

diskadmin

如果登入是 diskadmin 固定伺服器角色成員,則為 1。

dbcreator

如果登入是 dbcreator 固定伺服器角色成員,則為 1。

loginname

登入的實際名稱,該名稱可能不同于 SQL Server 所使用的登入名。

每個指定的連結伺服器的使用者和密碼映射在表中占一行。該表存儲在 master 資料庫中。

rmtsrvid

伺服器的 SID(安全辨別号)。

rmtloginame

loginsid 映射到的連結 rmtservid 的遠端登入名。

rmtpassword

連結 rmtsrvid 内的指定遠端登入的加密密碼。

loginsid

要映射的本地登入 SID。

如果該值為 1,映射應使用使用者自己的憑據。

changedate

上次更改映射資訊的日期。

sysprocesses 表中儲存關于運作在 Microsoft? SQL Server? 上的程序的資訊。這些程序可以是用戶端程序或系統程序。 sysprocesses 隻存儲在master 資料庫中。

spid

SQL Server 程序 ID。

kpid

Microsoft Windows NT 4.0? 線程 ID。

blocked

分塊程序的程序 ID ( spid )。

waittype

binary(2)

waittime

目前等待時間(以毫秒為機關)。當程序不處于等待時,為 0。

lastwaittype

nchar(32)

表示上次或目前等待類型名稱的字元串。

waitresource

鎖資源的文本化表示法。

目前正由程序使用的資料庫 ID。

uid

執行指令的使用者 ID。

cpu

程序的累計 CPU 時間。無論 SET STATISTICS TIME ON 選項是 ON 還是 OFF,都為所有程序更新該條目。

physical_io

程序的累計磁盤讀取和寫入。

memusage

目前配置設定給該程序的過程高速緩存中的頁數。一個負數,表示程序正在釋放由另一個程序配置設定的記憶體。

login_time

用戶端程序登入到伺服器的時間。對于系統程序,是存儲 SQL Server 啟動發生的時間。

last_batch

用戶端程序上次執行遠端存儲過程調用或 EXECUTE 語句的時間。對于系統程序,是存儲 SQL Server 啟動發生的時間。

ecid

用于唯一辨別代表單個程序進行操作的子線程的執行上下文 ID。

open_tran

程序的打開事務數。

nchar(30)

程序 ID 狀态(如運作、休眠等)。

binary(85)

使用者的全局唯一辨別符 (GUID)。

hostname

工作站的名稱。

program_name

應用程式的名稱。

hostprocess

nchar(8)

工作站程序 ID 号。

cmd

nchar(16)

目前正在執行的指令。

nt_domain

用戶端的 Windows NT 4.0 域(如果使用 Windows 身份驗證)或信任連接配接的 Windows NT 4.0 域。

nt_username

程序的 Windows NT 4.0使用者名(如果使用 Windows 身份驗證)或信任連接配接的 Windows NT 4.0 使用者名。

net_address

nchar(12)

指派給每個使用者工作站上的網絡接口卡唯一辨別符。當使用者登入時,該辨別符插入net_address 列。

net_library

loginame

登入名。

每個允許調用 Microsoft? SQL Server? 上的遠端存儲過程的遠端使用者占一行。

remoteserverid

遠端伺服器辨別。

remoteusername

遠端伺服器上的使用者登入名。

選項的位圖。

Microsoft Windows NT? 使用者安全 ID。

添加遠端使用者的日期和時間。

每個表和視圖中的每列在表中占一行,存儲過程中的每個參數在表中也占一行。該表位于每個資料庫中。

列名或過程參數的名稱。

該列所屬的表對象 ID,或與該參數關聯的存儲過程 ID。

xtype

systypes 中的實體存儲類型。

typestat

xusertype

擴充的使用者定義資料類型 ID。

length

systypes 中的最大實體存儲長度。

xprec

xscale

colid

列或參數 ID。

xoffset

bitpos

colstat

cdefault

該列的預設值 ID。

domain

該列的規則或 CHECK 限制 ID。

number

過程分組時(0 表示非過程項)的子過程号。

colorder

autoval

offset

該列所在行的偏移量;如果為負,表示可變長度行。

用于描述列或參數屬性的位圖:

0x08 = 列允許空值。

0x10 = 當添加 varchar 或 varbinary 列時,ANSI 填充生效。保留 varchar 列的尾随空格,保留varbinary 列的尾随零。

0x40 = 參數為 OUTPUT 參數。

0x80 = 列為辨別列。

usertype

systypes 中的使用者定義資料類型 ID。

printfmt

varchar(255)

prec

該列的精度級别。

scale

該列的小數位數。

iscomputed

表示是否已計算該列的标志:

0 = 未計算。

1 = 已計算。

isoutparam

表示該過程參數是否是輸出參數:

1 = 真。

0 = 假。

isnullable

表示該列是否允許空值:

包含限制映射,映射到擁有該限制的對象。該系統目錄存儲在每個資料庫中。

constid

限制号。

擁有該限制的表 ID。

在其上定義限制的列 ID,如果是表限制則為 0。

spare1

位圖訓示狀态。可能的值包括:

1 = PRIMARY KEY 限制。

2 = UNIQUE KEY 限制。

3 = FOREIGN KEY 限制。

4 = CHECK 限制。

5 = DEFAULT 限制。

16 = 列級限制。

32 = 表級限制。

actions

error

資料庫中的每個檔案組在表中占一行。該表存儲在每個資料庫中。在該表中至少有一項用于主檔案組。

每個資料庫的唯一組辨別号。

allocpolicy

0x8 = READ ONLY

0x10 = DEFAULT

groupname

檔案組的名稱。

資料庫中的每個檔案在表中占一行。該系統表是虛拟表,不能直接更新或修改。

資料庫的增長大小。0 值表示不增長。根據狀态的值,可以是頁數或檔案大小的百分比。如果 status 包含 0x100000,則 growth 是檔案大小的百分比;否則,它是頁數。

growth 值(以兆位元組 (MB) 或千位元組 (KB) 為機關)的狀态位。

0x1 = 預設裝置。

0x2 = 磁盤檔案。

0x40 = 日志裝置。

0x80 = 自上次備份後已寫入檔案。

0x4000 = 由 CREATE DATABASE 語句

隐性建立的裝置。

0x8000 = 在資料庫建立過程中建立的裝置。

0x100000 = 按百分比而不是按頁數增長。

包含關于表定義中的 FOREIGN KEY 限制的資訊。該表存儲在每個資料庫中。

FOREIGN KEY 限制的 ID。

fkeyid

具有 FOREIGN KEY 限制的表對象 ID。

rkeyid

在 FOREIGN KEY 限制中引用的表對象 ID。

fkey

正在引用的列 ID。

rkey

已引用的列 ID。

keyno

該列在引用列清單中的位置。

資料庫中的每個索引和表在表中各占一行。該表存儲在每個資料庫中。

表 ID(如果 indid = 0 或 255)。否則為索引所屬表的 ID。

内部系統狀态資訊。

first

binary(6)

指向第一頁或根頁的指針。

indid

索引 ID:

1 = 聚集索引

>1 = 非聚集

255 = 具有 text 或 image 資料的表條目

root

如果 indid >= 1 和 < 255, root 是指向根頁的指針。如果 indid = 0 或 indid = 255, root 是指向最後一頁的指針。

minlen

最小行大小。

keycnt

鍵的數目。

在其上建立對象的檔案組 ID。

dpages

如果 indid = 0 或 indid = 1, dpages 是已用資料頁的計數。如果 indid = 255,其設定為 0。否則是已用索引頁的計數。

如果 indid = 0 或 indid = 1, reserved 是配置設定給所有索引和表資料的頁計數。如果 indid = 255,reserved 是配置設定給 text 或 image 資料的頁計數。否則是配置設定給索引的頁計數。

used

如果 indid = 0 或 indid = 1, used 是用于所有索引和表資料的總頁數。如果 indid = 255, used 是用于text 或 image 資料的頁計數。否則是用于索引的頁計數。

rowcnt

bigint

基于 indid = 0 和 indid = 1 的資料級行計數。如果indid = 255, rowcnt 設定為 0。

rowmodctr

對自上次更新表的統計後插入、删除或更新行的總數進行計數。

xmaxlen

最大行大小。

maxirow

最大非葉索引行大小。

OrigFillFactor

建立索引時使用的起始填充因子值。不保留該值;然而,如果需要重新建立索引但記不住當初使用的填充因子,則該值可能很有幫助。

reserved1

reserved2

FirstIAM

impid

保留。索引實作标志。

lockflags

用于限制經過考慮的索引鎖粒度。例如,對于本質上是隻讀的查找表,可以将其設定為僅進行表級鎖定以使鎖定成本減到最小。

pgmodctr

keys

varbinary(816)

組成索引鍵的列 ID 清單。

表名(如果 indid = 0 或 255)。否則為索引的名稱。

statblob

統計 BLOB。

maxlen

rows

基于 indid = 0 和 indid = 1的資料級行數,該值對于indid >1 重複。如果 indid = 255, rows 設定為 0。提供該列是為了向後相容。

每個資料庫角色成員在表中占一行。該表存儲在每個資料庫中。

memberuid

角色成員的使用者 ID。

groupuid

角色的使用者 ID。

在資料庫内建立的每個對象(限制、預設值、日志、規則、存儲過程等)在表中占一行。隻有在 tempdb 内,每個臨時對象才在該表中占一行。

對象名。

Id

對象辨別号。

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 = 擴充存儲過程

所有者對象的使用者 ID。

info

保留。僅限内部使用。

base_schema_

ver

replinfo

保留。供複制使用。

parent_obj

父對象的對象辨別号(例如,對于觸發器或限制,該辨別号為表 ID)。

對象的建立日期。

ftcatid

為全文索引注冊的所有使用者表的全文目錄辨別符,對于沒有注冊的所有使用者表則為 0。

schema_ver

版本号,該版本号在每次表的架構更改時都增加。

stats_schema_

對象類型。可以是下列值之一:

C = CHECK 限制 

F = FOREIGN KEY 限制 

K = PRIMARY KEY 或 UNIQUE 限制 

R = 規則

S = 系統表 

userstat

sysstat

内部狀态資訊。

indexdel

refdate

deltrig

instrig

updtrig

seltrig

用于釋出、限制和辨別。

cache

包含有關對資料庫内的使用者、組和角色授予和拒絕的權限的資訊。該表存儲在每個資料庫中。

對象權限的對象 ID;0 表示語句權限。

grantee

受權限影響的使用者、組或角色的 ID。

grantor

被授予或廢除權限的使用者、組或角色的 ID。

actadd

actmod

seladd

varbinary(4000)

selmod

updadd

updmod

refadd

refmod

對于每種系統提供資料類型和使用者定義資料類型,均包含一行資訊。該表存儲在每個資料庫中。

這些是系統提供的資料類型及其 ID 号。

資料類型名稱。

實體存儲類型。

擴充使用者類型。

資料類型的實體長度。

伺服器所使用的内部精度。(不能在查詢中使用。)

伺服器所使用的内部小數位數。(不能在查詢中使用。)

tdefault

對此資料類型進行完整性檢查的存儲過程的 ID。

資料類型建立者的使用者 ID。

使用者類型 ID。

variable

bit

可變長度資料類型為 1;否則為 0。

allownulls

指出此資料類型的預設為空性。如果 CREATE 或 ALTER TABLE 指定了為空性,那麼該值将替代此資料類型的預設為空性。

實體存儲資料類型。

此資料類型的精度級别。

此資料類型的小數位數(根據精度)。

資料庫中每個 Microsoft? Windows 使用者、Windows 組、Microsoft SQL Server? 使用者或 SQL Server 角色在表中占一行。

使用者 ID,在此資料庫中是唯一的。1 是資料庫所有者。

Name

使用者名或組名,在此資料庫中是唯一的。

此條目的安全性辨別符。

roles

varbinary(2048)

帳戶的添加日期。

帳戶的上次修改日期。

altuid

varbinary(256)

gid

此使用者所屬的組 ID。如果 uid = gid ,那麼此條目就定義一個組。

environ

hasdbaccess

如果該帳戶有資料庫通路權限,則為 1。

islogin

如果該帳戶是有登入帳戶的 Windows 組、Windows 使用者或 SQL Server 使用者,則為 1。

如果該帳戶是 Windows 組或 Windows 使用者,則為 1。

如果該帳戶是 Windows 組,則為 1。

如果該帳戶是 Windows 使用者,則為 1。

issqluser

如果該帳戶是 SQL Server 使用者,則為 1。

isaliased

如果該帳戶以另一個使用者為别名,則為 1。

issqlrole

如果該帳戶是 SQL Server 角色,則為 1。

isapprole

如果該帳戶是應用程式角色,則為 1。

本文轉自xwdreamer部落格園部落格,原文連結:http://www.cnblogs.com/xwdreamer/archive/2012/06/25/2561256.html,如需轉載請自行聯系原作者