Aracılığıyla paylaş


sys.foreign_key_columns (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'te ambarMicrosoft Fabric'te SQL veritabanı

Her sütun veya sütun kümesi için bir yabancı anahtar oluşturan bir satır içerir.

Sütun adı Veri türü Description
constraint_object_id int YABANCı ANAHTAR kısıtlamasının kimliği.
constraint_column_id int YABANCı ANAHTAR'ı oluşturan sütunun veya sütun kümesinin kimliği (1..n burada n, sütun sayısıdır).
parent_object_id int Başvuran nesne olan kısıtlamanın üst öğesinin kimliği.
parent_column_id int Başvuran sütun olan üst sütunun kimliği.
referenced_object_id int Başvurulan nesnenin, aday anahtarı olan kimliği.
referenced_column_id int Başvuruda bulunılan sütunun kimliği (aday anahtar sütunu).

Permissions

Katalog görünümlerindeki meta verilerin görünürlüğü, kullanıcının sahip olduğu veya kullanıcıya bazı izinlerin verildiği güvenli hale getirilebilir öğelerle sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .

Örnek sorgu

Aşağıdaki Transact-SQL sorgusu, veritabanındaki ilgili tablolar ve sütunlar da dahil olmak üzere tüm yabancı anahtarları alır.

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;

Ayrıca bakınız