更新任何字段会导致更新索引视图吗?

时间:2012-06-15 06:41:35

标签: sql-server-2005 indexed-view

以下是MSDN中索引视图的说明:“由于对基表中的数据进行了修改,数据修改将反映在索引视图中存储的数据中。”

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

谢谢!

1 个答案:

答案 0 :(得分:1)

没有记录,但我相信会发生某些活动。

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

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

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