在MS SQL Server中,有一种方法可以检测数据库是否通过T-SQL命令设置了隔离级别ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;
我无法在T-SQL或Management Studio的GUI中找到一种简单的方法来检测它。
TIA
答案 0 :(得分:173)
SELECT is_read_committed_snapshot_on FROM sys.databases
WHERE name= 'YourDatabase'
返回值:
READ_COMMITTED_SNAPSHOT
选项开启。 READ COMMITTED
隔离级别下的读取操作基于快照扫描,不会获取锁定。READ_COMMITTED_SNAPSHOT
选项关闭。 READ COMMITTED
隔离级别下的读取操作使用Shared (S) locks。答案 1 :(得分:2)
根据https://msdn.microsoft.com/en-us/library/ms180065.aspx, &#34; DBCC USEROPTIONS报告“已提交读取快照”的隔离级别&#39;当数据库选项READ_COMMITTED_SNAPSHOT设置为ON并且事务隔离级别设置为&#39; read committed&#39;。实际的隔离级别是读取提交的。&#34;
同样在SQL Server Management Studio中,在Options-&gt; Miscellaneous下的数据库属性中,有&#34; Is Read Committed Snapshot On&#34;选项状态
答案 2 :(得分:1)
在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