136

在 Microsoft SQL Server 中,有没有办法检测数据库是否通过 T-SQL 命令设置了其隔离级别ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

我找不到在 T-SQL 或通过 Management Studio 的 GUI 中检测到这一点的简单方法。

4

3 回答 3

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

返回值:

  • 1READ_COMMITTED_SNAPSHOT选项为ON。隔离级别下的读操作READ COMMITTED基于快照扫描,不获取锁。
  • 0(默认):READ_COMMITTED_SNAPSHOT选项为OFFREAD COMMITTED隔离级别下的读操作使用共享(S)锁
于 2008-09-09T14:10:50.580 回答
3
  1. 根据DBCC USEROPTIONS (Transact-SQL)

当数据库选项 READ_COMMITTED_SNAPSHOT 设置为 ON 并且事务隔离级别设置为“已提交读”时,DBCC USEROPTIONS 报告“已提交读快照”的隔离级别。实际的隔离级别是读提交的。

  1. 同样在 SQL Server Management Studio 中,在 Options->Miscellaneous 下的数据库属性中,有“Is Read Committed Snapshot On”选项状态
于 2016-07-09T22:58:29.427 回答
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
于 2014-01-06T03:44:31.637 回答