JOIN
またはCROSS APPLY
2つのテーブルを作成し、VIEW
を作成します。2つのテーブルのいずれかを更新するか、レコードを追加すると、ビューは自動的に更新されますか?
これらの新しいレコードはVIEW
に表示されますか?
はい、使用するたびに更新されます。
マイクロソフトは、ビューが何であるかを明確にまとめていると思います。
ビューは、仮想テーブルまたはストアドクエリのいずれかと考えることができます。
http://msdn.Microsoft.com/en-us/library/aa214068%28v=sql.80%29.aspx
ビューは自動的にキャッシュされません。
ビューからSELECT
を使用する場合、データベースはビューに保存されているクエリを実行して、ステートメントで使用する結果セットを取得する必要があります
ビューで「見る」データは、実際にはどこにも保存されず、テーブルからその場で生成されます。
このため、非常に複雑なビューを慎重に実行する必要があります。結果セットにアクセスする前に、ビューを実行する必要があることを常に考慮してください。
ビューは基本的に保存されたクエリであり、データを保持していないため、作成されたテーブルが更新されても更新されません。ただし、ビューを参照すると、その基になっているクエリが実行されるため、ベーステーブルに加えられた変更が表示されます。
はい。ビューは、基になるテーブル/ビューに対するSELECTクエリです。基になるテーブルのデータを変更し、その範囲がビュー定義に含まれている場合、変更されたデータが表示されます。
はい、記録は毎回更新されます。
ただし、テーブル定義を変更する場合。 refresh
ビューを忘れないでください。
exec sp_refreshview @viewname
ビュー定義でSELECT *
を使用しないで、代わりにcolumn name
を使用してください
@ Curt's Answerに追加するだけで、基になるテーブルに加えた更新がデータの追加または削除である場合、ビューは新しいデータで自動的に更新されます。基礎となるテーブル(基本的にはViewの定義)から列を追加または削除する場合、sp_RefreshView
ストアドプロシージャを実行して、ビューに新しいスキーマを反映する必要があります。