设置快照隔离未反映

时间:2013-10-07 09:14:00

标签: sql sql-server sql-server-2008 database-administration

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

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”命令成功运行。这是正确的吗?

1 个答案:

答案 0 :(得分:3)

该数据库未启用快照隔离。

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

  

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

要启用它,您需要运行

ALTER DATABASE MyDB SET ALLOW_SNAPSHOT_ISOLATION ON;