Sql 快照事务
我想在快照事务中执行删除和插入 我的做法是:Sql 快照事务,sql,sql-server-2008,sql-server-2008-r2,Sql,Sql Server 2008,Sql Server 2008 R2,我想在快照事务中执行删除和插入 我的做法是: set transaction isolation level snapshot begin transaction Delete from tbl_test Insert into tbl_test select * from tbl_source commit transaction 我希望,如果在事务期间查询表tbl_test,结果与事务之前相同。点击提交后,我希望新数据可用。 发生的情况是,在删除完成之前,表中的数据具有初
set transaction isolation level snapshot
begin transaction
Delete from tbl_test
Insert into tbl_test select * from tbl_source
commit transaction
我希望,如果在事务期间查询表tbl_test,结果与事务之前相同。点击提交后,我希望新数据可用。
发生的情况是,在删除完成之前,表中的数据具有初始值。插入开始时,快照被擦除,新数据可用
有什么线索可以解决这个问题吗 您希望在同一事务中的Delete和Insert之间放置select语句,此select语句应返回启动事务之前可用的所有记录。您是否在该数据库上启用了
ALLOW\u SNAPSHOT\u ISOLATION
。删除后,表的行为与初始表相同。但是,当insert开始时,查询表将返回新数据。我认为您应该检查触发Select语句的隔离级别。我无法复制此内容,因为只有在交易未结束时,Select才会完成。