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