SQL Server的每個資料庫內都有此系統資料表,它存放該資料庫內建立的所有對象,如約束、預設值、日誌、規則、預存程序等,每個對象在表中佔一行。
以下是此系統資料表的欄位名稱和相關說明。
列名 |
資料類型 |
描述 |
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 |
所有者對象的使用者識別碼。 |
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 |
保留。 |
當xtype='U' and status>0代表是使用者建立的表,對象名就是表名,對象ID就是表的ID值。
用以下代碼就可以列出庫misa中所有的使用者建立的表名。
select * from misa.dbo.sysobjects
where xtype='U'and status>0
以用友資料庫use ufdata_888_2004為例:
SQL Code
--查詢資料庫ufdata_888_2004的使用者表
select * from sysobjects
where xtype = 'u' and name like 'fa_%'
order by name
--查詢資料庫ufdata_888_2004的預存程序
select * from sysobjects
where xtype = 'p' and name like 'fa_%'
order by name
--查詢資料庫ufdata_888_2004的觸發器
select * from sysobjects
where xtype = 'tr' and name like 'sa_%'
order by name