2008-09-09 91 views
105

在MS SQL Server是有辦法來檢測數據庫是否有它的隔離級別通過T-SQL命令ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;如何檢測READ_COMMITTED_SNAPSHOT已啓用?

我無法找到一個簡單的方法在任何T-SQL或通過管理來檢測此設置Studio的GUI。

TIA

回答

158
SELECT is_read_committed_snapshot_on FROM sys.databases 
WHERE name= 'YourDatabase' 

返回值:

  • READ_COMMITTED_SNAPSHOT選項是ON。在READ COMMITTED隔離級別下的讀取操作基於快照掃描並且不獲取鎖。
  • (默認):READ_COMMITTED_SNAPSHOT選項是OFF。讀取操作根據READ COMMITTED隔離級別使用Shared (S) locks
+6

我喜歡「DBCC USEROPTIONS」,有點容易記住。 – ProVega 2013-10-29 04:43:37

+3

@ProVega - DBCC USEROPTIONS不返回is_read_committed_snapshot_on的值。 – 2015-05-08 14:37:33

0

既不在SQL2005也沒有2012確實DBCC USEROPTIONS顯示is_read_committed_snapshot_on

Set Option Value 
textsize 2147483647 
language us_english 
dateformat mdy 
datefirst 7 
lock_timeout -1 
quoted_identifier SET 
arithabort SET 
ansi_null_dflt_on SET 
ansi_warnings SET 
ansi_padding SET 
ansi_nulls SET 
concat_null_yields_null SET 
isolation level read committed 
1
  1. https://msdn.microsoft.com/en-us/library/ms180065.aspx, 「DBCC USEROPTIONS報道的 '讀提交快照' 當數據庫選項READ_COMMITTED_SNAPSHOT爲隔離級別設置爲ON,並且事務隔離級別設置爲'read committed'。實際隔離級別被讀取提交。「

    在SQL Server Management Studio中
  2. 此外,在選項 - 數據庫屬性>其他有「讀取已提交快照打開」選項狀態