JOIN
またはCROSS APPLY
2テーブルを作成し、VIEW
を作成すると、2つのテーブルのどちらかを更新するか、どちらか一方にレコードを追加するとビューが自動的に更新されますか?ビューが自動的に更新される
これらの新しいレコードはVIEW
に表示されますか?
JOIN
またはCROSS APPLY
2テーブルを作成し、VIEW
を作成すると、2つのテーブルのどちらかを更新するか、どちらか一方にレコードを追加するとビューが自動的に更新されますか?ビューが自動的に更新される
これらの新しいレコードはVIEW
に表示されますか?
はい、使用するたびに更新されます。
私は、Microsoftが表示はかなり明確であるものを合計すると思う:
ビューは仮想テーブルまたはストアドクエリのいずれかと考えることができます。
http://msdn.microsoft.com/en-us/library/aa214068%28v=sql.80%29.aspx
ビューは自動的にキャッシュされません。あなたのビューからSELECT
、データベースは
あなたの文では、ビューで「見る」のデータを使用して結果がセット取得するためにビューに保存されたクエリを実行する必要があり
は、実際に格納されていませんどこでも、そしてその場でテーブルから生成されます。
このため、非常に複雑なビューを慎重に実行する必要があります。結果セットにアクセスする前にビューを実行する必要があることを常に考慮してください。
+1またはインライン展開されたマクロで、あらかじめ計算された結果ではなく、囲みコードの一部を形成します。 – MatBailie
ビュー内のデータがどこにも格納されていない場合、ビューに行を追加するとき 'INSERT INTO dbo.MyView(myCol)VALUES( 'test')' - どこに格納されますか? – BornToCode
ビューにレコードを挿入できません。 – Curt
はい、ビューは、基礎となるテーブル/ビューに対するSELECTクエリです。基になるテーブルのデータを変更し、その範囲がビュー定義に含まれている場合は、変更されたデータが表示されます。
ビューは基本的にはストアド・クエリです。データは保持されないため、作成した表が更新されることはありません。ただし、ビューを参照するとすぐに、それが基になっているクエリが実行されるので、ベーステーブルに加えられた変更が表示されます。
@ Curt's Answerに追加するだけで、基礎となるテーブルに対する更新がデータの追加または削除である場合、ビューは新しいデータで自動的に更新されます。 基礎となるテーブル(基本的にビューの定義)から列を追加または削除する場合は、sp_RefreshView
ストアドプロシージャを実行して、新しいスキーマをビューに反映させる必要があります。
はい、レコードは毎回更新されます。
しかし、テーブル定義を変更した場合。 refresh
の表示を忘れないでください。
のexec sp_refreshviewの@viewname
使う代わりに、ビュー定義でSELECT *
を使用しないでくださいcolumn name
はい、彼らは意志 - しかし、それを試して見つけるための最も簡単な方法はないですか? –
いいえ、最も速い方法はGoogle検索です:) –