2009-06-17 24 views

答えて

1

私はDB2(およびSQL一般)のビューを理解しているので、SQL select文のエイリアスとして効果的に機能します。この状況では、あなたの子ビューはまだ存在しますが、親が削除されたときにクエリを実行するとエラーが発生することが予想されます。

子ビューの定義が格納され、静的なままであるため、同じオブジェクト名で親ビューを再作成すると、子ビューは期待される結果を再度返します。

これは非常に簡単に自分自身を確認することができます。 :-)

0

Michael Sharekの応答は正しいです。ドロップされたビューに依存する残りのビューは、ドロップされたビューが置き換えられた後であっても無効(SYSCAT.VIEWSのその行にはVALID = 'N')のままです。 SYSCAT.VIEWS内の任意のビュー(VALID = 'N')のcreate文を再発行する必要がありますが、無効なビューを削除せずに上書きできるというのは良いニュースです。

私は通常、EXPORTを使用して、SYSCAT.VIEWS内のすべてのビューのTEXT列のコピーをVALID = 'N'に抽出します。その後、そのファイルでDDL文を実行し、無効なビューはすべて通常最初のパスで置き換えられます。ただし、より高度な相互依存関係の階層がある場合は、ファイルをさらに2回実行する必要があります。前回のパスで有効になったビューのDDLをフィルタリングする必要はありません。これらのステートメントは重複したオブジェクトエラーで安全に拒否されます。

関連する問題