SQL Server 2008 R2快照隔离问题

时间:2016-05-25 17:32:34

标签: sql-server sql-server-2008 snapshot-isolation

我正在使用SET TRANSACTION ISOLATION LEVEL SNAPSHOT并在数据库上启用了快照,但我注意到的是,如果我执行一个简单的删除语句,例如

BEGIN TRANSACTION
DELETE * FROM TableA
INSERT INTO TableA(...) SELECT (...) FROM TableB
COMMIT TRANSACTION

有效地擦除表格并使用新数据重新填充表格,因为数据是从另一个表格加载的。在执行此操作的同时,执行一个简单的选择,该选择也在声明了快照的事务中运行,例如

SET TRANSACTION ISOLATION LEVEL SNAPSHOT

SELECT ID FROM TableA WHERE SomeColumn = 'A'

如果正在运行DELETE / INSERT语句,则扫描表,否则执行索引查找。这是预期的行为吗?

0 个答案:

没有答案