Aracılığıyla paylaş


sp_foreignkeys (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Bağlı sunucudaki tablodaki birincil anahtarlara referans veren yabancı anahtarları döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

sp_foreignkeys
    [ @table_server = ] N'table_server'
    [ , [ @pktab_name = ] N'pktab_name' ]
    [ , [ @pktab_schema = ] N'pktab_schema' ]
    [ , [ @pktab_catalog = ] N'pktab_catalog' ]
    [ , [ @fktab_name = ] N'fktab_name' ]
    [ , [ @fktab_schema = ] N'fktab_schema' ]
    [ , [ @fktab_catalog = ] N'fktab_catalog' ]
[ ; ]

Arguments

[ @table_server = ] N'table_server'

Tablo bilgisini döndürmek için bağlı sunucunun adı. @table_serversysname'dir, varsayılan yoktur.

[ @pktab_name = ] N'pktab_name'

Birincil anahtarlı tablonun adı. @pktab_namesysname'dir ve varsayılan olarak .NULL

[ @pktab_schema = ] N'pktab_schema'

Şemanın adı, birincil anahtarla birlikte. @pktab_schemasysname'dir ve varsayılan olarak .NULL SQL Server'da bu parametre sahibin adını içerir.

[ @pktab_catalog = ] N'pktab_catalog'

Birincil anahtarlı kataloğun adı. @pktab_catalogsysname'dir, varsayılan olarak .NULL SQL Server'da bu parametre veritabanı adını içerir.

[ @fktab_name = ] N'fktab_name'

Yabancı anahtarlı masanın adı. @fktab_namesysname'dir ve varsayılan olarak .NULL

[ @fktab_schema = ] N'fktab_schema'

Yabancı anahtarlı şemanın adı. @fktab_schemasysname'dir ve varsayılan olarak .NULL

[ @fktab_catalog = ] N'fktab_catalog'

Kataloğun yabancı anahtarlı adı. @fktab_catalogsysname'dir ve varsayılan olarak .NULL

Dönüş kodu değerleri

Yok.

Sonuç kümesi

Çeşitli veritabanı yönetim sistemi (DBMS) ürünleri, tablolar (<catalog>.<schema>.<table>), için üç bölümlü adlandırmayı destekler ve bu durum sonuç kümesinde temsil edilir.

Sütun adı Veri türü Description
PKTABLE_CAT sysname Ana anahtarın bulunduğu tablo için katalog.
PKTABLE_SCHEM sysname Birincil anahtarın bulunduğu tablo için şema.
PKTABLE_NAME sysname Tablonun adı (birincil anahtarla). Bu alan her zaman bir değer döndürür.
PKCOLUMN_NAME sysname Geri dönen her sütun TABLE_NAME için birincil anahtar sütunu veya sütunlarının adı. Bu alan her zaman bir değer döndürür.
FKTABLE_CAT sysname Yabancı anahtarın bulunduğu tablo için katalog.
FKTABLE_SCHEM sysname Yabancı anahtarın bulunduğu tablo için şema.
FKTABLE_NAME sysname Tablonun adı (yabancı anahtarla). Bu alan her zaman bir değer döndürür.
FKCOLUMN_NAME sysname Yabancı anahtar sütunlarının adı, geri dönen her sütun TABLE_NAME için. Bu alan her zaman bir değer döndürür.
KEY_SEQ smallint Çok sütunlu birincil anahtardaki sütunun dizi numarası. Bu alan her zaman bir değer döndürür.
UPDATE_RULE smallint SQL işlemi güncelleme olduğunda yabancı anahtara uygulanan eylem. SQL Server bu sütunlar için 0, 1 veya 2 döndürür:

0 = CASCADE yabancı anahtara değişiklikler.
1 = NO ACTION yabancı anahtar varsa değişir.
2 = SET_NULL; Yabancı anahtarı olarak ayarlayın NULL.
DELETE_RULE smallint SQL işlemi silme olduğunda yabancı anahtara uygulanan eylem. SQL Server bu sütunlar için 0, 1 veya 2 döndürür:

0 = CASCADE yabancı anahtara değişiklikler.
1 = NO ACTION yabancı anahtar varsa değişir.
2 = SET_NULL; Yabancı anahtarı olarak ayarlayın NULL.
FK_NAME sysname Yabancı anahtar tanımlayıcısı. NULL Veri kaynağı için geçerli değilse de. SQL Server kısıtlama adını döndürür FOREIGN KEY .
PK_NAME sysname Birincil anahtar tanımlayıcısı. NULL Veri kaynağı için geçerli değilse de. SQL Server kısıtlama adını döndürür PRIMARY KEY .
DEFERRABILITY smallint Kısıtlama kontrolü ertelenebilen olup olmadığını gösterir.

Sonuç kümesinde, FK_NAME ve PK_NAME sütunları her zaman NULLdöner.

Açıklamalar

sp_foreignkeysOLE DB sağlayıcısının arayüzünün @table_server'ye karşılık gelen FOREIGN_KEYS satır IDBSchemaRowset kümesini sorgular. @table_name, @table_schema, @table_catalog ve @column parametreleri bu arayüze iletilerek geri dönen satırlar sınırlanır.

Permissions

Şema için izin gerekiyor SELECT .

Örnekler

Aşağıdaki örnek, bağlı sunucudaki veritabanındaki tablo AdventureWorks2025 hakkında yabancı anahtar bilgilerini Department geri getirir, Seattle1.

EXECUTE sp_foreignkeys
    @table_server = N'Seattle1',
    @pktab_name = N'Department',
    @pktab_catalog = N'AdventureWorks2022';