可以爲每個數據庫都設置若干個決定數據庫特徵的數據庫級選項。這些選項對於每個數據庫都是唯一的,而且不影響其他數據庫。當創建數據庫時這些數據庫選項設置爲默認值,而且可以使用 ALTER DATABASE 語句的 SET 子句來更改這些數據庫選項。此外,SQL Server Management Studio 可用於設置上述大多數選項。
若要更改所有新創建的數據庫的任意數據庫選項的默認值,請更改model 數據庫中的相應的數據庫選項。例如,對於隨後創建的任何新數據庫,如果希望 AUTO_CLOSE 數據庫選項的默認設置都爲 True,則將 model 的 AUTO_CLOSE 選項設置爲 True
1.自動選項
控制某些自動行爲。
選項 | 說明 | 默認值 |
AUTO_CLOSE | 當設置爲 ON 時,數據庫將在最後一個用戶退出後完全關閉,它佔用的資源也將釋放。當用戶嘗試再次使用該數據庫時,該數據庫將自動重新打開。 當設置爲OFF 時,最後一個用戶退出後數據庫仍保持打開。 | 如果頻繁訪問數據庫,則將數據庫的AUTO_CLOSE 選項設置爲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 |
2.遊標選項
控制遊標行爲和範圍。
選項 | 說明 | 默認值 |
CURSOR_CLOSE_ON_COMMIT | 當設置爲 ON 時,所有打開的遊標都將在提交或回滾事務時關閉。 當設置爲OFF 時,打開的遊標將在提交事務時仍保持打開,回滾事務將關閉所有遊標,但定義爲INSENSITIVE 或 STATIC 的遊標除外。 | OFF |
CURSOR_DEFAULT | 如果指定了 LOCAL,而創建遊標時沒有將其定義爲 GLOBAL,那麼遊標的作用域將侷限於創建遊標時所在的批處理、存儲過程或觸發器。遊標名僅在該作用域內有效。 | GLOBAL |
3.數據庫可用性選項
控制數據庫是在線還是離線、何人可以連接到數據庫以及數據庫是否處於只讀模式。
選項 | 說明 | 默認值 |
OFFLINE | ONLINE |EMERGENCY | 當指定爲OFFLINE 時,數據庫將完全關閉和退出,並標記爲脫機。 當指定爲 ONLINE 時,數據庫處於打開狀態並且可供使用。 當指定爲 EMERGENCY 時,數據庫將標記爲READ_ONLY,日誌記錄將被禁用,並且只有 sysadmin 固定服務器角色的成員才能進行訪問。 | ONLINE |
READ_ONLY |READ_WRITE | 當指定爲READ_ONLY 時,用戶可以從數據庫中讀取數據,但不能修改它。 當指定爲 READ_WRITE 時,允許對數據庫執行讀寫操作。 | READ_WRITE |
NGLE_USER| RESTRICTED_USER| MULTI_USER | 當指定爲SINGLE_USER 時,一次只允許一個用戶連接到數據庫。所有其他用戶連接均中斷。 當指定爲 RESTRICTED_USER 時,只允許db_owner 固定數據庫角色的成員以及 dbcreator 和 sysadmin 固定服務器角色的成員連接到數據庫,不過對連接數沒有限制。 當指定爲 MULTI_USER 時,允許所有具有相應權限的用戶連接到數據庫。 | MULTI_USER |
4.日期相關性優化選項
控制 date_correlation_optimization 選項。
選項 | 說明 | 默認值 |
DATE_CORRELATION_OPTIMIZATION | 當指定爲ON 時,SQL Server 將維護數據庫中所有由FOREIGN KEY 約束鏈接的包含 datetime 列的兩個表中的相關統計信息。當指定爲 OFF 時,不會維護相關統計信息。 | OFF |
5.外部訪問選項
控制是否允許外部資源(例如另一個數據庫中的對象)訪問數據庫。
選項 | 說明 | 默認值 |
DB_CHAINING | 當指定爲ON 時,數據庫可以爲跨數據庫所有權鏈的源或目標。 當設置爲 OFF 時,數據庫不能參與跨數據庫的所有權鏈接。 | OFF |
TRUSTWORTHY | 當設置爲ON 時,使用了模擬上下文的數據庫模塊(例如,用戶定義函數或存儲過程)可以訪問數據庫以外的資源。 當指定爲 OFF 時,在模擬上下文中無法訪問數據庫以外的資源。 只要附加數據庫,TRUSTWORTHY 就會設置爲 OFF。 | OFF |
6.參數化選項
控制參數化選項。
選項 | 說明 | 默認值 |
PARAMETERIZATION | 當指定爲 SIMPLE 時,將根據數據庫的默認行爲參數化查詢。 當指定爲FORCED 時,SQL Server 將參數化數據庫中所有的查詢。 | SIMPLE |
7.恢復選項
控制數據庫的恢復模式。
選項 | 說明 | 默認值 |
RECOVERY | 當指定爲 FULL 時,將使用事務日誌備份在發生介質故障後進行完全恢復。如果數據文件損壞,介質恢復可以還原所有已提交的事務。 當指定爲 BULK_LOGGED 時,將綜合某些大規模或大容量操作的最佳性能和日誌空間的最少佔用量,在發生介質故障後進行恢復。 當指定爲SIMPLE 時,將提供佔用最小日誌空間的簡單備份策略。 | FULL |
PAGE_VERIFY | 當指定爲 CHECKSUM 時,數據庫引擎將在頁寫入磁盤時,計算整個頁的內容的校驗和並存儲頁頭中的值。從磁盤中讀取頁時,將重新計算校驗和,並與存儲在頁頭中的校驗和值進行比較。 當指定爲 TORN_PAGE_DETECTION 時,在將 8KB 的數據庫頁寫入磁盤時,該頁的每個 512 字節的扇區都有一個特定的 2 位模式保存並存儲在數據庫的頁頭中。從磁盤中讀取頁時,頁頭中存儲的殘缺位將與實際的頁扇區信息進行比較。 當指定爲 NONE 時,數據庫頁寫入將不生成 CHECKSUM 或 TORN_PAGE_DETECTION 值。即使 CHECKSUM 或 TORN_PAGE_DETECTION 值在頁頭中出現,SQL Server 也不會在讀取期間驗證校驗和或頁撕裂。 | CHECKSUM |
8.ServiceBroker 選項
控制 Service Broker 選項。
選項 | 說明 | 默認值 |
ENABLE_BROKER |DISABLE_BROKER | NEW_BROKER | ERROR_BROKER_CONVERSATIONS | 當指定爲 ENABLE_BROKER 時,針對指定的數據庫啓用 Service Broker。 當指定爲 DISABLE_BROKER 時,針對指定的數據庫禁用 Service Broker。 當指定爲 NEW_BROKER 時,數據庫將收到新的代理標識符。 當指定爲 ERROR_BROKER_CONVERSATIONS 時,數據庫中的會話將在附加數據庫時收到一個錯誤消息。 | ENABLE_BROKER |
9.快照隔離選項
確定事務隔離級別。
選項 | 說明 | 默認值 |
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 |
10.SQL 選項
控制 ANSI 相容性選項。
選項 | 說明 | 默認值 |
ANSI_NULL_DEFAULT | 確定在CREATE TABLE 或 ALTER TABLE 語句中未顯式定義爲 Null 性的 alias 數據類型或 CLR 用戶定義類型列的默認值(NULL 或NOT NULL)。 當指定爲 ON 時,默認值爲 NULL。 當指定爲 OFF 時,默認值爲 NOT NULL。 | OFF |
ANSI_NULLS | 當指定爲ON 時,所有與空值的比較運算計算結果爲 UNKNOWN。 當指定爲 OFF 時,非 UNICODE 值與空值的比較運算在兩者均爲 NULL 時結果爲 TRUE。 | OFF |
ANSI_PADDING | 設置爲 ON 時,不剪裁插入 varchar或 nvarchar列中的字符值的尾隨空格,也不剪裁插入 varbinary列中的二進制值的尾隨零。不將值填充到列的長度。 設置爲 OFF 時,剪裁 varchar或 nvarchar的尾隨空格以及 varbinary的尾隨零。此設置隻影響新列的定義。 ANSI_PADDING設置爲 ON 時,將把允許爲空的 char和 binary列填充到列長,而當 ANSI_PADDING 爲 OFF 時,則將剪裁尾隨空格和零。始終將不允許爲空的 char和 binary列填充到列長。 | OFF |
ANSI_WARNINGS | 當指定爲 ON 時,在出現如除以零或聚合函數中出現空值這類情形時,將發出錯誤或警告。 當指定爲 OFF 時,在出現如除以零這類情形時,不會發出警告,並返回空值。 | OFF |
ARITHABORT | 當指定爲 ON 時,在執行查詢期間發生溢出或除以零的錯誤時,該查詢將結束。當指定爲 OFF 時,出現其中一個錯誤時將顯示警告信息,而查詢、批處理或事務將繼續處理,就像沒有出現錯誤一樣。 | OFF |
CONCAT_NULL_YIELDS_NULL | 當指定爲 ON 時,如果串聯操作的兩個操作數中任意一個爲 NULL,則結果也爲 NULL。 當指定爲 OFF 時,空值將按空字符串對待。 | OFF |
QUOTED_IDENTIFIER | 當指定爲 ON 時,雙引號可用來將分隔標識符括起來。 當指定爲 OFF 時,標識符不能用引號括起來,而且必須遵循所有用於標識符的 Transact-SQL 規則。 | OFF |
NUMERIC_ROUNDABORT | 當指定爲 ON 時,表達式中出現失去精度時將產生錯誤。 當指定爲 OFF 時,失去精度不生成錯誤信息,並且將結果舍入到存儲結果的列或變量的精度。 | OFF |
RECURSIVE_TRIGGERS | 當指定爲 ON 時,將允許遞歸激發 AFTER 觸發器。 當指定爲 OFF 時,僅不允許直接遞歸激發 AFTER 觸發器。 | OFF |
以上信息來息微軟官網
https://msdn.microsoft.com/zh-cn/library/ms190249.aspx