Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 快照事务_Sql_Sql Server 2008_Sql Server 2008 R2 - Fatal编程技术网

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才会完成。