設定資料庫選項

您可以為每個資料庫設定一些決定資料庫特性的資料庫選項。這些選項對每個資料庫都是唯一的,並不會影響其他資料庫。在建立資料庫時,這些資料庫選項都將設為預設值,而且可使用 ALTER DATABASE 陳述式的 SET 子句來變更。除此之外,還可使用 SQL Server Management Studio 來設定大部分的選項。

[!附註]

伺服器範圍的設定值是使用 sp_configure 系統預存程序或 SQL Server Management Studio 來設定。如需詳細資訊,請參閱<設定伺服器組態選項>。連線層級的設定可使用 SET 陳述式來指定。如需詳細資訊,請參閱<SET 選項>。

若要為新建立的資料庫變更任何資料庫選項的預設值,請在 model 資料庫中變更適當的資料庫選項。例如,如果您想讓後續建立之任何新資料庫的 AUTO_CLOSE 資料庫選項預設設定都是 True,請將 model 的 AUTO_CLOSE 選項設定為 True。

當您設定在資料庫選項後,檢查點會自動發出,讓修改立即生效。如需詳細資訊,請參閱<CHECKPOINT (Transact-SQL)>。

資料庫選項

下表列出建立資料庫時會設定的資料庫選項以及其預設值。如需這些選項的完整描述,請參閱<ALTER DATABASE (Transact-SQL)>。

自動選項

控制某些自動行為。

選項

描述

預設值

AUTO_CLOSE

當設定為 ON 時,資料庫會完全關閉,並在最後一個使用者結束之後釋放其資源。當使用者試圖重新使用資料庫時,會自動重新開啟資料庫。

當設定為 OFF 時,則在最後一個使用者結束之後資料庫仍為開啟。

不論作業系統為何,使用 SQL Server 2000 Desktop Engine 或 SQL Server Express 時,這個選項對所有資料庫是設為 True;對於所有其他的版本則是設為 False。

AUTO_CREATE_STATISTICS

當設定為 ON 時,統計資料會自動建立在使用述詞的資料行上。

當設為 OFF 時,不會自動建立統計資料;相反地,此時可以手動建立統計資料。

True

AUTO_UPDATE_STATISTICS

當設定為 ON 時,在最佳化時查詢所需的任何遺漏的統計資料,都會在查詢最佳化時自動建立。

當設定為 OFF 時,則必須手動建立統計資料。如需詳細資訊,請參閱<使用統計資料來改善查詢效能>。

True

AUTO_SHRINK

若設成 ON,資料庫檔案會被定期縮減。資料檔和記錄檔都可以由 SQL Server 自動壓縮。只有在資料庫設為 SIMPLE 復原模式或備份記錄時,AUTO_SHRINK 才會縮減交易記錄的大小。

當設定為 OFF 時,不會在定期檢查未使用空間時自動縮減資料庫檔案。

False

Auto_Update_Statistics_Asynchronously

設定為 True 時,就會以非同步方式更新統計資料。

False

資料指標選項

控制資料指標的行為與範圍。

選項

描述

預設值

CURSOR_CLOSE_ON_COMMIT

若設定為 ON 時,則在認可或回復交易時,將會關閉任何開啟的資料指標。

當設定為 OFF 時,在認可交易時資料指標仍然是開啟的,但回復交易則會關閉所有資料指標,除了那些定義為 INSENSITIVE 或 STATIC 的資料指標。

OFF

CURSOR_DEFAULT

當指定 LOCAL,且資料指標並未在建立時定義為 GLOBAL,則資料指標的範圍僅限於資料指標建立時所在之批次、預存程序或觸發程序的本機範圍。資料指標名稱只在這個範圍內有效。

當指定 GLOBAL,且資料指標並未在建立時定義為 LOCAL,則資料指標的範圍便是連接的全域範圍。連接所執行的任何預存程序或批次都可以參考資料指標名稱。

GLOBAL

資料庫可用性選項

控制資料庫是在線上或離線、誰可連接到資料庫、資料庫是否處於唯讀模式。

選項

描述

預設值

OFFLINE | ONLINE | EMERGENCY

若您指定 OFFLINE,資料庫將完全關閉與關機,並標為離線。

若您指定 ONLINE,資料庫將會開啟並可供使用。

當指定 EMERGENCY 時,會將資料庫標示為 READ_ONLY、停用記錄並限定只有 sysadmin (系統管理員) 固定伺服器角色的成員才可存取。

ONLINE

READ_ONLY | READ_WRITE

當指定 READ_ONLY 時,使用者將只能讀取資料庫的資料,而不能修改它。

當指定 READ_WRITE 時,將可對資料庫進行讀取和寫入作業。

READ_WRITE

SINGLE_USER | RESTRICTED_USER | MULTI_USER

當指定 SINGLE_USER 時,每次只有一個使用者可以連接到資料庫。所有其他的使用者連接都會中斷。

當指定 RESTRICTED_USER 時,只允許 db_owner 固定資料庫角色與 dbcreator (資料庫建立者) 及 sysadmin (系統管理員) 固定伺服器角色的成員連接到資料庫,但它並未限制他們的數目。

當指定 MULTI_USER 時,可讓所有具有適當權限的使用者都連接到允許的資料庫。

MULTI_USER

日期交互關聯最佳化選項

控制 date_correlation_optimization 選項。

選項

描述

預設值

DATE_CORRELATION_OPTIMIZATION

當指定 ON 時,SQL Server 會維護資料庫中任兩個資料表之間的交互關聯統計資料,該資料庫是由 FOREIGN KEY 條件約束所連結並具有 datetime 資料行。

當指定 OFF 時,則不會維謢交互關聯統計資料。

OFF

如需詳細資訊,請參閱<將存取相互關聯日期時間資料行的查詢最佳化>。

外部存取選項

控制諸如另一個資料庫的物件等外部資源是否可存取資料庫。

選項

描述

預設值

DB_CHAINING

當指定 ON 時,資料庫可以是跨資料庫擁有權鏈結的來源或目標。

當指定 OFF 時,則資料庫無法參與跨資料庫擁有權鏈結。

OFF

TRUSTWORTHY

當指定 ON 時,使用模擬內容的資料庫模組 (例如,使用者定義函數或預存程序) 可以存取資料庫之外的資源。

當指定 OFF 時,在模擬內容中將無法存取資料庫之外的資源。

每當附加資料庫時,TRUSTWORTHY 都設為 OFF。

OFF

參數化選項

控制參數化選項。

選項

描述

預設值

PARAMETERIZATION

當指定 SIMPLE 時,將會根據資料庫的預設行為將查詢參數化

當指定 FORCED 時,SQL Server 會將資料庫中的所有查詢參數化。

SIMPLE

復原選項

控制資料庫的復原模式。

選項

描述

預設值

RECOVERY

當指定 FULL 時,將使用交易記錄備份提供媒體失敗後的完整復原模式。如果資料檔損毀,媒體復原可以還原所有已認可的交易。

當指定 BULK_LOGGED 時,媒體失敗後的後原是針對某些提供的大範圍或大量作業,結合最佳效能以及最少的記錄空間用量。

當指定 SIMPLE 時,就會提供簡單的備份策略,即使用最少的記錄空間。

FULL

PAGE_VERIFY

當指定 CHECKSUM 時,Database Engine會針對整頁的內容計算總和檢查碼,並在將頁面寫入磁碟時,於頁首中儲存值。從磁碟讀取頁面時,會重新計算總和檢查碼,並與頁首所儲存的總和檢查碼值作比較。

如果您指定了 TORN_PAGE_DETECTION,系統會在頁面寫入磁碟時,將 8 KB 的資料庫頁面中的每 512 位元組磁區之特定 2 位元模式儲存至資料庫頁首中。當從磁碟中讀取頁面時,會比較頁面標頭所儲存的損毀位元和實際的頁面磁區資訊。

當指定 NONE 時,資料庫頁面將不會產生 CHECKSUM 或 TORN_PAGE_DETECTION 值。SQL Server 將不會在讀取時驗證總和檢查碼或損毀頁面,即使在頁首中有 CHECKSUM 或 TORN_PAGE_DETECTION 值也是如此。

CHECKSUM

Service Broker 選項

控制 Service Broker 選項。

選項

描述

預設值

ENABLE_BROKER | DISABLE_BROKER | NEW_BROKER | ERROR_BROKER_CONVERSATIONS

當指定 ENABLE_BROKER 時,指定資料庫將啟用 Service Broker。

當指定 DISABLE_BROKER 時,指定資料庫將停用 Service Broker。

當指定 NEW_BROKER 時,資料庫將收到新的 Broker 識別碼。

當指定 ERROR_BROKER_CONVERSATIONS,在附加資料庫時,資料庫中的交談將收到錯誤訊息。

ENABLE_BROKER

快照隔離選項

決定交易隔離等級。

選項

描述

預設值

ALLOW_SNAPSHOT_ISOLATION

當指定 ON 時,交易可以指定 SNAPSHOT 交易隔離等級。當交易執行的隔離等級是 SNAPSHOT 時,所有陳述式都會見到在交易開頭便存在的資料快照集。

當指定 OFF 時,交易無法指定 SNAPSHOT 交易隔離等級。

OFF

READ_COMMITTED_SNAPSHOT

當指定 ON 時,指定 READ COMMITTED 隔離等級的交易將使用資料列版本控制,而不是鎖定。當交易執行的隔離等級是 READ COMMITTED 時,所有陳述式都會見到在陳述式開頭便存在的資料快照集。

當指定 OFF 時,指定 READ COMMITTED 隔離等級的交易將使用鎖定。

設定 READ_COMMITTED_SNAPSHOT 選項時,資料庫中只允許使用執行 ALTER DATABASE 命令的連接。在 ALTER DATABASE 完成以前,資料庫中不可以有其他開啟的連接。資料庫不一定要處於單一使用者模式。

OFF

SQL 選項

控制 ANSI 符合選項。

選項

描述

預設值

ANSI_NULL_DEFAULT

決定未在 CREATE TABLE 或 ALTER TABLE 陳述式中明確定義 Null 屬性之資料行、別名資料類型CLR 使用者定義型別的預設值,NULL 或 NOT NULL。

當指定 ON 時,預設值是 NULL。

當指定 OFF 時,預設值是 NOT NULL。

OFF

ANSI_NULLS

當指定 ON 時,所有與 Null 值的比較都會評估為 UNKNOWN。

當指定 OFF 時,非 UNICODE 值與 Null 值都為 NULL 時,其比較會評估為 TRUE。

OFF

ANSI_PADDING

設定為 ON 時,不會修剪插入 varchar 或 nvarchar 資料行中的字元值尾端空格及插入 varbinary 資料行的二進位值尾端零。值不會填補到資料行的長度。

設定為 OFF 時,會修剪尾端空格 (varchar 或 nvarchar) 及尾端零 (varbinary)。這項設定只會影響新資料行的定義。

當 ANSI_PADDING 設為 ON 時,允許 Null 的 char 和 binary 資料行會填補到資料行的長度,但當 ANSI_PADDING 是 OFF 時,則會修剪尾端的空格和零。不接受 Null 的 char 和 binary 資料行,一律會填補到資料行的長度。

OFF

ANSI_WARNINGS

當指定 ON 時,如發生「除以零」或彙總函式出現 Null 值等情況時,會發出錯誤或警告。

當指定 OFF 時,若發生「除以零」等情況時,將不會引發警告,並且會傳回 Null 值。

OFF

ARITHABORT

當指定 ON 時,若在執行查詢期間發生溢位或除以零的錯誤時,就會結束查詢。

當指定 OFF 時,若發生了這些錯誤之一,系統將顯示警告訊息,但是查詢、批次或交易仍將持續處理,就好像沒有發生錯誤一樣。

OFF

CONCAT_NULL_YIELDS_NULL

當指定 ON 時,則在任一個運算元為 NULL 時,串連運算的結果為 NULL。

當指定 OFF 時,會將 Null 值當做空字元字串來處理。

OFF

QUOTED_IDENTIFIER

當指定 ON 時,則可用雙引號來括住分隔識別碼。

當指定 OFF 時,無法將識別碼括在引號中,且必須遵循所有的 Transact-SQL 識別碼規則。

OFF

NUMERIC_ROUNDABORT

當指定 ON 時,則在運算式中遺失有效位數時,就會產生錯誤。

當指定 OFF 時,損失有效位數並不會產生錯誤訊息,並且將結果進位成儲存該結果之資料行或變數的有效位數。

OFF

RECURSIVE_TRIGGERS

當指定 ON 時,可以對 AFTER 觸發程序進行遞迴引發。

當指定 OFF 時,僅無法對 AFTER 觸發程序進行直接遞迴引發。

OFF

若要變更資料庫選項