2012-06-15 93 views
1

下面是索引視圖的MSDN中的描述:「由於對基表中的數據進行了修改,因此數據修改將反映在存儲在索引視圖中的數據中」。更新任何字段會導致更新索引視圖嗎?

但我現在很困惑,將更新基表中的任何字段導致索引視圖的自動維護,即使這個字段不包括在索引視圖的定義?

謝謝!

回答

1

這是沒有記錄,但我相信一些活動將發生。

從文檔中的各種提示中,我相信SQL Server實際上在每個基表上構建了一些非常類似觸發器的東西。因此,「觸發器」將針對表上的每個更新/插入/刪除操作運行。

不過,我相信觸發器使用類似COLUMNS_UPDATED檢查哪些列有實際更新活動,如果沒有相關的列受到影響將提前退出

E.g.如果您將ANSI_NULLS發送到OFFON對索引視圖是必需的),那麼針對視圖未使用的列的任何更新都將起作用。 提及視圖中使用的列的任何更新(即使SET是不可操作的,例如Column1 = Column1),然後您將收到一條錯誤消息。

相關問題