1

MSDN 中对索引视图的描述如下:“由于对基表中的数据进行了修改,因此数据修改会反映在索引视图中存储的数据中”。

但是我现在很困惑,更新基表中的任何字段是否会导致索引视图的自动维护,即使该字段不包含在索引视图的定义中?

谢谢!

4

1 回答 1

1

它没有记录在案,但我相信会发生一些活动。

从文档中的各种提示来看,我相信 SQL Server 实际上在每个基表上都构造了类似于触发器的东西。因此,“触发器”将针对表上的每个更新/插入/删除操作运行。

但是,我相信触发器使用类似COLUMNS_UPDATED检查哪些列具有实际更新活动的功能,并且如果没有相关列受到影响,它将提前退出。

例如,如果您发送ANSI_NULLSOFFON索引视图需要),那么针对视图未使用的列的任何更新都将起作用。而任何提及视图中使用的列的更新(即使SET是无操作,例如Column1 = Column1),那么您将收到一条错误消息。

于 2012-06-15T06:48:01.750 回答