您可以在SNAPSHOT隔离级别中访问旧版本的数据。
这要求在启动之前数据库已启用快照隔离:
ALTER DATABASE <dbname> SET ALLOW_SNAPSHOT_ISOLATION ON
然后在连接B中
SET TRANSACTION ISOLATION LEVEL SNAPSHOT select * from Personel
快照隔离有一些性能考虑因素,因为它会复制读入tempdb的行。
文档参考
SNAPSHOT(又名行版本控制)。
在快照隔离下,当连接B中的ti启动事务时,连接B将看到数据为原样(即使您没有启动显式事务,SELECT语句也会启动隐式事务)。看到 了解基于行版本控制的隔离级别 :
快照事务执行的读取操作检索最后一个 快照时提交的每一行的版本 交易开始了。
必须在数据库中明确启用SNAPSHOT支持:
ALTER DATABASE <DatabaseName> SET ALLOW_SNAPSHOT_ISOLATION ON;