2

のインデックス付きビューを作成し、View1トリガーTable1Table2代わりにトリガーTable1を使用しView1ます。View1トリガーの代わりにこのビューを使用した場合とトリガー後に使用した場合、データは変更されないようです。View1ただし、トリガー後にこのビューを使用する場合は、新しいデータで使用したいと思います。どうすればいいですか。with Noexpandインデックス付きビューを使用する場合はヒントを使用することに注意してください(インデックス付きビューがないなど、このインデックス付きビューを実際に使用しない場合)with noexpandSQL Server 2008 R2

4

1 に答える 1

3

インデックス付きビューは、ベーステーブルのすべてのトリガーが実行された後に更新されます。クエリプランでそれを確認できます。ビューには、クラスター化されたインデックスの更新が1つだけあります。

ただし、INSTEAD OFビューでトリガーを作成してから、インデックス付きビューですべての操作を行うことができます。ただし、更新可能なビューを介して更新/挿入/削除する場合は、いくつかの制限があります。あなたはここでそれらについて読むことができます。

ビューはトリガーのみを許可し、INSTEAD OFトリガーAFTERも許可しないことに注意してください。

インデックス付きビューの更新について知っておくべき最も重要なことは、UPDATE、INSERT、およびDELETEステートメントを含むすべての変更は、1つのベーステーブルからの列のみを参照する必要があるということです。

于 2012-06-30T07:19:48.360 に答える