Model 資料庫

適用於:SQL Server

模型資料庫可用作在 SQL Server 執行個體上建立之所有資料庫的範本。 因為每次 SQL Server 啟動時都會建立 tempdb,所以模型資料庫一定要存在於 SQL Server 系統中。 model 資料庫的完整內容 (包括資料庫選項) 都會複製到新的資料庫。 在啟動期間,模型的某些設定也會用於建立新的 tempdb,所以模型資料庫必須一直存在於 SQL Server 系統上。

新建立的使用者資料庫會使用與 model 資料庫相同的 復原模式 。 使用者可以設定預設值。 若要了解模型目前的復原模式,請參閱檢視或變更資料庫的復原模式 (SQL Server)

重要

如果您使用使用者特定的範本資訊來修改 model 資料庫,建議您備份 model。 如需詳細資訊,請參閱系統資料庫的備份與還原 (SQL Server)

model 使用方式

發出 CREATE DATABASE 陳述式時,會複製 model 資料庫的內容,來建立資料庫的第一個部分。 新資料庫的剩餘部份則填入空白頁。

如果您修改 model 資料庫,則此後建立的所有資料庫都會繼承那些變更。 例如,您可以設定權限或資料庫選項,或是加入資料表、函數、預存程序之類的物件。 model 資料庫的檔案屬性是例外狀況,且已加以忽略 (資料檔案的初始大小除外)。 模型資料庫資料和記錄檔的預設初始大小是 8 MB。

model 的實體屬性

下表列出 model 資料檔和記錄檔的初始組態值。

檔案 邏輯名稱 實體名稱 檔案成長
主要資料 modeldev model.mdf 自動成長 64 KB,直到磁碟滿了為止。
Log modellog modellog.ldf 自動成長 64 KB,最多到 2 TB。

針對 SQL Server 2014,請參閱模型資料庫來取得預設檔案成長值。

若要移動 Model 資料庫或記錄檔,請參閱 移動系統資料庫

資料庫選項

下表列出 model 資料庫中每一個資料庫選項的預設值,以及是否可以修改選項。 若要檢視這些選項目前的設定,請參閱 sys.databases 目錄檢視。

資料庫選項 預設值 可以修改
ALLOW_SNAPSHOT_ISOLATION OFF
ANSI_NULL_DEFAULT OFF
ANSI_NULLS OFF
ANSI_PADDING OFF
ANSI_WARNINGS OFF
ARITHABORT OFF
AUTO_CLOSE OFF
AUTO_CREATE_STATISTICS 開啟
AUTO_SHRINK OFF
AUTO_UPDATE_STATISTICS 開啟
AUTO_UPDATE_STATISTICS_ASYNC OFF
CHANGE_TRACKING OFF
CONCAT_NULL_YIELDS_NULL OFF
CURSOR_CLOSE_ON_COMMIT OFF
CURSOR_DEFAULT GLOBAL
資料庫可用性選項 ONLINE

MULTI_USER

READ_WRITE




DATE_CORRELATION_OPTIMIZATION OFF
DB_CHAINING OFF
ENCRYPTION OFF
MIXED_PAGE_ALLOCATION 開啟
NUMERIC_ROUNDABORT OFF
PAGE_VERIFY CHECKSUM
PARAMETERIZATION 簡單
QUOTED_IDENTIFIER OFF
READ_COMMITTED_SNAPSHOT OFF
RECOVERY 視 SQL Server 版本而定*
RECURSIVE_TRIGGERS OFF
Service Broker 選項 DISABLE_BROKER
TRUSTWORTHY OFF

*若要確認資料庫目前的復原模式,請參閱檢視或變更資料庫的復原模式 (SQL Server)sys.databases (Transact-SQL)

如需這些資料庫選項的描述,請參閱 ALTER DATABASE (Transact-SQL)

限制

下列作業無法在 model 資料庫上執行:

  • 加入檔案或檔案群組。
  • 變更定序。 預設定序是伺服器定序。
  • 變更資料庫擁有者。 model 是由 sa所擁有。
  • 卸除資料庫。
  • 從資料庫卸除 guest 使用者。
  • 啟用異動資料擷取。
  • 參與資料庫鏡像。
  • 移除主要檔案群組、主要資料檔或記錄檔。
  • 重新命名資料庫或主要檔案群組。
  • 將資料庫設定為 OFFLINE。
  • 將主要檔案群組設為 READ_ONLY。
  • 使用 WITH ENCRYPTION 選項來建立程序、檢視表或觸發程序。 此加密金鑰會繫結至在其中建立物件的資料庫。 在 model 資料庫中建立的加密物件只能用於 model