4

当我运行 - SET TRANSACTION ISOLATION LEVEL SNAPSHOT - 命令成功执行但以下查询返回:

SELECT is_read_committed_snapshot_on,
       snapshot_isolation_state_desc,
       snapshot_isolation_state
FROM   sys.databases
WHERE  name = 'MyDB' 

输出:

is_read_committed_snapshot_on   0
snapshot_isolation_state_desc   OFF 
snapshot_isolation_state        0

你能告诉我为什么 set transction 命令没有反映吗?另外,我假设我的“ ”命令成功运行ALLOW_SNAPSHOT_ISOLATION时已经“开启”。对吗?SET TRANSACTION ISOLATION LEVEL SNAPSHOT

4

1 回答 1

10

该数据库没有启用快照隔离。

如果您尝试然后对该数据库运行查询,您将收到消息。

快照隔离事务访问数据库“MyDB”失败,因为此数据库中不允许快照隔离。使用 ALTER DATABASE 允许快照隔离。

要启用它,您需要运行

ALTER DATABASE MyDB SET ALLOW_SNAPSHOT_ISOLATION ON;
于 2013-10-07T09:20:06.087 回答