2

View1我在and 上创建了一个索引视图,Table1并且Table2Table1使用View1. View1当我在而不是触发器和触发器之后使用此视图时,数据似乎没有改变。但是我想View1在触发器后使用这个视图时使用新数据。我该怎么做。需要注意的是,我with Noexpand在使用索引视图时使用了提示(当在此索引视图中不使用with noexpand提示时,SQL Server 2008 R2例如没有索引视图)。

4

1 回答 1

3

索引视图在基表上的所有触发器都执行后更新。您可以在查询计划中看到这一点。视图上只有一个聚集索引更新。

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

请注意,视图只允许INSTEAD OF触发器,不允许触发器AFTER

关于更新索引视图,最重要的一点是任何修改,包括 UPDATE、INSERT 和 DELETE 语句,都必须仅引用一个基表中的列。

于 2012-06-30T07:19:48.360 回答