Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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';