在 Microsoft SQL Server 中,有没有办法检测数据库是否通过 T-SQL 命令设置了其隔离级别ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
?
我找不到在 T-SQL 或通过 Management Studio 的 GUI 中检测到这一点的简单方法。
在 Microsoft SQL Server 中,有没有办法检测数据库是否通过 T-SQL 命令设置了其隔离级别ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
?
我找不到在 T-SQL 或通过 Management Studio 的 GUI 中检测到这一点的简单方法。
SELECT is_read_committed_snapshot_on FROM sys.databases
WHERE name= 'YourDatabase'
返回值:
READ_COMMITTED_SNAPSHOT
选项为ON。隔离级别下的读操作READ COMMITTED
基于快照扫描,不获取锁。READ_COMMITTED_SNAPSHOT
选项为OFF。READ COMMITTED
隔离级别下的读操作使用共享(S)锁。当数据库选项 READ_COMMITTED_SNAPSHOT 设置为 ON 并且事务隔离级别设置为“已提交读”时,DBCC USEROPTIONS 报告“已提交读快照”的隔离级别。实际的隔离级别是读提交的。
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