SQL Server 包含下列系統資料庫。
系統資料庫 | 說明 |
---|---|
master 資料庫 | 記錄 SQL Server 實例的所有系統層級資訊。 |
msdb 資料庫 | 被 SQL Server Agent 用來排程警示和作業。 |
model Database | 做為 SQL Server 實例上建立之所有資料庫的範本。 對 模型 資料庫所做的修改,例如資料庫大小、定序、恢復模式和其他資料庫選項,會套用至之後建立的任何資料庫。 |
資源資料庫 | 這是唯讀資料庫,其中包含 SQL Server 隨附的系統物件。 系統物件會實際保存在 Resource 資料庫中,但邏輯上會顯示在每個資料庫的 sys 架構中。 |
tempdb 資料庫 | 這是用來保存暫存物件或中繼結果集的工作區。 |
修改系統數據
SQL Server 不支援使用者直接更新系統對象中的資訊,例如系統數據表、系統預存程式和目錄檢視。 SQL Server 反而是提供一組完整的系統管理工具,讓使用者可以完全管理系統,並且管理資料庫中的所有使用者和物件。 這些包括下列各項:
系統管理公用程式,例如 SQL Server Management Studio。
SQL-SMO API。 這可讓程式設計人員在其應用程式中包含管理 SQL Server 的完整功能。
Transact-SQL 文稿和預存程式。 這些可以使用系統預存程式和 Transact-SQL DDL 語句。
這些工具可保護應用程式免於系統物件中的變更。 例如,SQL Server 有時必須變更新版 SQL Server 中的系統數據表,以支援在該版本中新增的新功能。 發出直接參考系統數據表之SELECT語句的應用程式經常相依於系統數據表的舊格式。 站點可能需要在重寫選擇系統表的應用程式之後,才能升級至新版本的 SQL Server。 SQL Server 會考慮系統預存程式、DDL 和 SQL-SMO 已發佈的介面,並且可維持這些介面的回溯相容性。
SQL Server 不支援在系統資料表上定義的觸發程式,因為它們可能會修改系統的作業。
備註
系統資料庫不能位於 UNC 共用目錄上。
檢視系統資料庫數據
除非這是取得應用程式所需資訊的唯一方法,否則您不應該撰寫程式代碼 Transact-SQL 直接查詢系統數據表的語句。 另一方面來說,應用程式應該使用以下方式來取得目錄和系統資訊:
系統目錄檢視
SQL-SMO
Windows Management Instrumentation (WMI) 介面
應用程式中使用的數據 API 的函數、方法、屬性或特性,例如 ADO、OLE DB 或 ODBC。
Transact-SQL 系統預存程式和內建函式。