索引视图更新时

时间:2012-06-30 05:20:07

标签: sql sql-server-2008 triggers sql-server-2008-r2 indexed-view

我在View1Table1上创建了一个索引视图Table2,而不是在使用Table1的{​​{1}}触发后触发。当我使用此视图而不是触发器和触发器之后,View1的数据似乎没有改变。但是我想在触发后使用此视图时使用View1新数据。我该怎么做。应该注意的是,我在使用索引视图时使用View1提示(当不在with Noexpand中使用with noexpand提示操作此索引视图时,例如没有索引视图)。

1 个答案:

答案 0 :(得分:3)

在执行基表上的所有触发器后,将更新索引视图。您可以在查询计划中看到它。视图上会有仅一个聚簇索引更新。

但是,您可以在视图上创建INSTEAD OF触发器,然后在索引视图上进行所有操作。但是,通过可更新视图更新/插入/删除时存在一些限制。您可以阅读here

请注意,视图仅允许INSTEAD OF个触发器,而不允许AFTER

了解更新索引视图最重要的事情是任何修改(包括UPDATE,INSERT和DELETE语句)都必须仅引用一个基表中的列。