MSDN 中对索引视图的描述如下:“由于对基表中的数据进行了修改,因此数据修改会反映在索引视图中存储的数据中”。
但是我现在很困惑,更新基表中的任何字段是否会导致索引视图的自动维护,即使该字段不包含在索引视图的定义中?
谢谢!
MSDN 中对索引视图的描述如下:“由于对基表中的数据进行了修改,因此数据修改会反映在索引视图中存储的数据中”。
但是我现在很困惑,更新基表中的任何字段是否会导致索引视图的自动维护,即使该字段不包含在索引视图的定义中?
谢谢!
它没有记录在案,但我相信会发生一些活动。
从文档中的各种提示来看,我相信 SQL Server 实际上在每个基表上都构造了类似于触发器的东西。因此,“触发器”将针对表上的每个更新/插入/删除操作运行。
但是,我相信触发器使用类似COLUMNS_UPDATED
检查哪些列具有实际更新活动的功能,并且如果没有相关列受到影响,它将提前退出。
例如,如果您发送ANSI_NULLS
到OFF
(ON
索引视图需要),那么针对视图未使用的列的任何更新都将起作用。而任何提及视图中使用的列的更新(即使SET
是无操作,例如Column1 = Column1
),那么您将收到一条错误消息。