0

Sql Server 2005 では、マスター テーブルと、複数の 1 対多の関係を通じてこのマスターに関連付けられている他のいくつかのテーブルがあります。「多」側で、マスターテーブルの主キーに関連するすべてのテーブルとフィールドを見つけるにはどうすればよいですか?

INFORMATION_SCHEMA からビューを照会することでこれを抽出できることはわかっていますが、この情報を正確にどこで見つけることができるかはわかりません。

ありがとうございました

4

2 に答える 2

1

チェックアウト:

INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE

于 2010-06-11T19:19:38.990 に答える
0

私は次のクエリを使用するSQLサーバーグループの助けを借りて答えを見つけました。これは、関係の片側と多側でスキーマ名、テーブル、およびフィールド名を返します。

SELECT
    SchemaParent.name AS ParentSchemaName, 
    TableParent.name AS ParentTableName, 
    ColumnParent.name AS ParentColumnName, 
    SchemaChild.name AS ChildSchemaName, 
    TableChild.name AS ChildTableName, 
    ColumnChild.name AS ChildColumnName
FROM         
    sys.foreign_key_columns AS kc INNER JOIN
        sys.objects AS TableChild ON kc.parent_object_id = TableChild.object_id INNER JOIN
        sys.schemas AS SchemaChild ON TableChild.schema_id = SchemaChild.schema_id INNER JOIN
        sys.objects AS TableParent ON kc.referenced_object_id = TableParent.object_id INNER JOIN
        sys.schemas AS SchemaParent ON TableParent.schema_id = SchemaParent.schema_id INNER JOIN
        sys.columns AS ColumnParent ON kc.referenced_object_id = ColumnParent.object_id AND kc.referenced_column_id = ColumnParent.column_id INNER JOIN
        sys.columns AS ColumnChild ON kc.parent_object_id = ColumnChild.object_id AND kc.parent_column_id = ColumnChild.column_id
ORDER BY ParentTableName, ChildTableName
于 2010-06-12T10:12:54.023 に答える