SQL Serverオブジェクトを作成する正しい順序は何ですか? (これはインストーラの注文用です)?SQL Serverオブジェクト
私は右の順序が
- スキーマ
- テーブル
- ビュー
- 機能
- のSP
しかし、しかし、私は混乱しています、どのような場合であると仮定ビューは関数を参照していますか?また、関数がビューを参照するとどうなりますか?
SQL Serverオブジェクトを作成する正しい順序は何ですか? (これはインストーラの注文用です)?SQL Serverオブジェクト
私は右の順序が
しかし、しかし、私は混乱しています、どのような場合であると仮定ビューは関数を参照していますか?また、関数がビューを参照するとどうなりますか?
オブジェクトを作成できる「一般的な」順序はありません(たとえば、関数を使用する可能性のあるテーブルにCHECK制約がありません)。 100%の権利が必要な場合は、データベースオブジェクトの特定のセットを分析して、個々の依存関係を分析して、それらが適切な順序で作成されていることを確認する必要があります。
より簡単な例として、ビューはテーブル値関数にアクセスできます。しかし、テーブル値関数はビューに基づいている可能性があります。だからどちらかを最初からやっても必ずしもうまくいくわけではない。
ストアドプロシージャは、プロセスのかなり早い段階で、Deferred Name Resolutionのおかげで作成できます。これは唯一肯定的なことです。
ありがとう...!私たちはデータベースオブジェクトとそのデプロイメントにTFSを使用しています...依存関係を発見し、順次デプロイするのは難しいです...今のところ、この問題を回避するために、 – user173552
いいえ、SPsは先に来るでしょう。 –
@kalyan - SPは関数を使うことができるので、SPの前に関数を入れます。関数は、ビューやテーブルで計算カラムやトリガとして使用することもできます。そのため、関数の生成順序は絶対ではありません。関数の使用場所によって異なります。 –