Ped*_*ice 5 sql sql-server transactions indexed-view
假设我有一个SQL Server索引视图,vwIndexedView,它从两个表中读取,tbTableOne和tbTableTwo.
如果我在事务中的两个表之一上执行操作,我的索引视图会发生什么?是否立即刷新,或者我必须在结果进入之前提交我的交易?
例如:
BEGIN TRANSACTION testTransaction
INSERT INTO tbTableOne VALUES ('1', '2')
SELECT * FROM vwIndexedView
COMMIT TRANSACTION
SELECT * FROM vwIndexedView
Run Code Online (Sandbox Code Playgroud)
第一个SELECT的结果是否与第二个不同?
Rem*_*anu 10
索引或索引视图会立即更新,作为执行更新的DML语句的一部分.在您的情况下,如果您分析INSERT的实际执行计划,您将看到它包含用于更新所有物理"分区"的运算符,并且索引视图是此类分区之一.