sys.foreign_key_columns (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のハードウェア SQL データベース
外部キーを構成する列または列のセットごとに 1 行が含まれます。
列名 | データ型 | 説明 |
---|---|---|
constraint_object_id | int | FOREIGN KEY 制約の ID。 |
constraint_column_id | int | FOREIGN KEY を構成する列または列のセットの ID (1..n で、n は列数を表します)。 |
parent_object_id | int | 参照元オブジェクトである、制約の親の ID。 |
parent_column_id | int | 参照元の列である、親列の ID です。 |
referenced_object_id | int | 候補キーを持つ、参照先オブジェクトの ID。 |
referenced_column_id | int | 参照先列の ID (候補キー列)。 |
アクセス許可
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
クエリの例
次の Transact-SQL クエリは、データベース内のすべての外部キー (関連するテーブルと列を含む) を取得します。
SELECT fk.name AS ForeignKeyName
, t_parent.name AS ParentTableName
, c_parent.name AS ParentColumnName
, t_child.name AS ReferencedTableName
, c_child.name AS ReferencedColumnName
FROM sys.foreign_keys fk
INNER JOIN sys.foreign_key_columns fkc
ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.tables t_parent
ON t_parent.object_id = fk.parent_object_id
INNER JOIN sys.columns c_parent
ON fkc.parent_column_id = c_parent.column_id
AND c_parent.object_id = t_parent.object_id
INNER JOIN sys.tables t_child
ON t_child.object_id = fk.referenced_object_id
INNER JOIN sys.columns c_child
ON c_child.object_id = t_child.object_id
AND fkc.referenced_column_id = c_child.column_id
ORDER BY t_parent.name, c_parent.name;