のインデックス付きビューを作成し、View1
トリガーTable1
のTable2
代わりにトリガーTable1
を使用しView1
ます。View1
トリガーの代わりにこのビューを使用した場合とトリガー後に使用した場合、データは変更されないようです。View1
ただし、トリガー後にこのビューを使用する場合は、新しいデータで使用したいと思います。どうすればいいですか。with Noexpand
インデックス付きビューを使用する場合はヒントを使用することに注意してください(インデックス付きビューがないなど、このインデックス付きビューを実際に使用しない場合)with noexpand
。SQL Server 2008 R2
質問する
1972 次
1 に答える
3
インデックス付きビューは、ベーステーブルのすべてのトリガーが実行された後に更新されます。クエリプランでそれを確認できます。ビューには、クラスター化されたインデックスの更新が1つだけあります。
ただし、INSTEAD OF
ビューでトリガーを作成してから、インデックス付きビューですべての操作を行うことができます。ただし、更新可能なビューを介して更新/挿入/削除する場合は、いくつかの制限があります。あなたはここでそれらについて読むことができます。
ビューはトリガーのみを許可し、INSTEAD OF
トリガーAFTER
も許可しないことに注意してください。
インデックス付きビューの更新について知っておくべき最も重要なことは、UPDATE、INSERT、およびDELETEステートメントを含むすべての変更は、1つのベーステーブルからの列のみを参照する必要があるということです。
于 2012-06-30T07:19:48.360 に答える