標籤:style blog http color io os 使用 ar strong
微軟Sql Server資料庫是企業開發管理中最常用的資料庫系統之一。其功能強大而且使用簡單、方便。我們在資料庫中建立資料庫、表、視圖、觸發器、預存程序、函數等資訊。
最常用的功能之一,查詢資料,例如:
1 SELECT [SysAreaId]2 ,[AreaName]3 ,[AreaNamePinYin]4 ,[ShortName]5 ,[AreaTypeId]6 ,[Depth]7 ,[ParentId]8 ,[PostCode]9 FROM [SavionPlatMisDB].[dbo].[SysArea]
查詢結果如:
從結果看出,查詢結果是以網狀行、列形式展示出來的。這就是關係型資料庫的特性之一。
那麼我們建立的表、視圖等資訊是如何儲存的呢?其實SQL Server資料庫是一種“自解釋”性是儲存介質。我們建立的表、視圖等也是儲存在其系統預設資料庫與表中。
其中之一就是sysobjects表。
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中所有的使用者建立的表名:
1 select * from dbo.sysobjects 2 where xtype=‘U‘and status>0
關於SQL Server中的系統資料表之一 sysobjects