2011-11-11 2 views
3

私はSQL Server 2008 R2を使用しています。私はデータベースを照会して、すべてのユーザー定義のテーブル(簡単にはSELECT Name FROM sys.tables)を取得したいが、挿入ステートメントがその順序で実行された場合、外部キー制約に実行されないように順序付けしたい。プログラムでSQL Serverからテーブルの一覧を依存関係の順序で取得する方法はありますか

つまり、上位レベルのテーブル(依存関係のないテーブル)が依存するテーブルの前にあるように、依存関係によって並べ替えられたテーブルのリストが必要です。

これを照会する最も効率的な方法は何ですか?

ありがとうございました。

+0

ユーザー定義のテーブル(制約なし)を許可できないときは、多くのインフラストラクチャを構築しています。考慮すべきもう一つの選択肢は、[EAV](http://en.wikipedia.org/wiki/Entity-attribute-value_model) –

答えて

0

本当にできますか? SQLでは循環参照を使用することは合法です。したがって、完全な順序は存在しません。オプションのNULL値は挿入を許可します(その後に更新が続きます)。しかし、ツリー関係はほとんどのシナリオでは単方向グラフではありません。

関連する問題