SQL問合せとの外部キー関係を見つけることは可能ですか?SQL問合せとの外部キー関係の検索
データベースは私の外部にあり、直接アクセスしてServer Management Studioのリンクを確認することはできません。あなたが各テーブルを照会する必要があると列[ID年代]はそれぞれ別のテーブルに存在しているかどうか確認するためにどこ
SQL問合せとの外部キー関係を見つけることは可能ですか?SQL問合せとの外部キー関係の検索
データベースは私の外部にあり、直接アクセスしてServer Management Studioのリンクを確認することはできません。あなたが各テーブルを照会する必要があると列[ID年代]はそれぞれ別のテーブルに存在しているかどうか確認するためにどこ
ありませんあなたはカント、
しかし、あなたはそれを手動で確認することができますが、それは面倒です。その関係を見る。
よろしく
私に知らせてくれてありがとう、データベースは560のテーブルで構成されていますので、私はちょうどそれを見逃すことがあります! – user1076439
SQL管理スタジオでサーバーにアクセスでき、ビューを使用してアクセスしているデータベース内のすべてのテーブルの関係を見ることができれば、はるかに優れています。 – BizApps
これらのシステム・ビューを使用することを検討して、外部キーについて検索するには:
sys.sysconstraints
sys.columns
sys.tables
あなたがたcolid、COLUMN_ID上でこれらの3つのビューが参加することができ、外部キー制約についての完全な情報を取得するためにOBJECT_ID。
これらのビューは、外部キーのリストを取得するには、SQL Serverで2005+
する必要があり、あなたはこのクエリを実行することができます
SELECT t.name AS FKTableName
, fk.name AS NameOfForeignKey
, pc.name AS FKColumn
, rt.name AS ReferencedTable
, c.name AS ReferencedColumn
FROM sys.foreign_key_columns AS fkc
INNER JOIN sys.foreign_keys AS fk ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.tables AS t ON fkc.parent_object_id = t.object_id
INNER JOIN sys.tables AS rt ON fkc.referenced_object_id = rt.object_id
INNER JOIN sys.columns AS pc ON fkc.parent_object_id = pc.object_id
AND fkc.parent_column_id = pc.column_id
INNER JOIN sys.columns AS c ON fkc.referenced_object_id = c.object_id
AND fkc.referenced_column_id = c.column_id
追加が必要な場合、このクエリはまた、より複雑にすることができますあなたの設定の情報。
メタデータの検索は、RDBMS固有のものです。どのデータベースエンジンを使用していますか? – dasblinkenlight
私は確信していませんが、それが役に立ったらSQL Server 2008だと思っています – user1076439
'sp_help my_table'のような、あなたが調べたいリレーションシップをテーブル上で' sp_help'という名前のストアドプロシージャを実行してみてください。テーブルを説明する7つの結果セットを返すべきです。最後のものは、テーブルの外部キーに関する情報を持つ必要があります。 – dasblinkenlight