当我运行时 - 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
”命令成功运行。这是正确的吗?
答案 0 :(得分:3)
该数据库未启用快照隔离。
如果您尝试然后对该数据库运行查询,您将收到消息。
快照隔离事务访问数据库'MyDB'失败 因为此数据库中不允许快照隔离。使用ALTER DATABASE允许快照隔离。
要启用它,您需要运行
ALTER DATABASE MyDB SET ALLOW_SNAPSHOT_ISOLATION ON;