Bagikan melalui


sp_foreignkeys (T-SQL)

Berlaku untuk:SQL Server

Mengembalikan kunci asing yang mereferensikan kunci utama pada tabel di server tertaut.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

[ @table_server = ] 'table_server' Adalah nama server tertaut untuk mengembalikan informasi tabel. table_server adalah sysname, tanpa default.

[ @pktab_name = ] 'pktab_name' Adalah nama tabel dengan kunci primer. pktab_name adalah sysname, dengan default NULL.

[ @pktab_schema = ] 'pktab_schema' Adalah nama skema dengan kunci primer. pktab_schema adalah sysname, dengan default NULL. Di SQL Server, ini berisi nama pemilik.

[ @pktab_catalog = ] 'pktab_catalog' Adalah nama katalog dengan kunci primer. pktab_catalog adalah sysname, dengan default NULL. Di SQL Server, ini berisi nama database.

[ @fktab_name = ] 'fktab_name' Adalah nama tabel dengan kunci asing. fktab_name adalah sysname, dengan default NULL.

[ @fktab_schema = ] 'fktab_schema' Adalah nama skema dengan kunci asing. fktab_schema adalah sysname, dengan default NULL.

[ @fktab_catalog = ] 'fktab_catalog' Adalah nama katalog dengan kunci asing. fktab_catalog adalah sysname, dengan default NULL.

Mengembalikan Nilai Kode

Tidak ada

Tataan Hasil

Berbagai produk DBMS mendukung penamaan tiga bagian untuk tabel (katalog.skema.tabel), yang diwakili dalam tataan hasil.

Nama kolom Jenis data Deskripsi
PKTABLE_CAT nama sysname Katalog untuk tabel tempat kunci utama berada.
PKTABLE_SCHEM nama sysname Skema untuk tabel tempat kunci utama berada.
PKTABLE_NAME nama sysname Nama tabel (dengan kunci primer). Bidang ini selalu mengembalikan nilai.
PKCOLUMN_NAME nama sysname Nama kolom atau kolom kunci utama, untuk setiap kolom TABLE_NAME dikembalikan. Bidang ini selalu mengembalikan nilai.
FKTABLE_CAT nama sysname Katalog untuk tabel tempat kunci asing berada.
FKTABLE_SCHEM nama sysname Skema untuk tabel tempat kunci asing berada.
FKTABLE_NAME nama sysname Nama tabel (dengan kunci asing). Bidang ini selalu mengembalikan nilai.
FKCOLUMN_NAME nama sysname Nama kolom kunci asing, untuk setiap kolom TABLE_NAME dikembalikan. Bidang ini selalu mengembalikan nilai.
KEY_SEQ smallint Nomor urut kolom dalam kunci primer multikolom. Bidang ini selalu mengembalikan nilai.
UPDATE_RULE smallint Tindakan yang diterapkan ke kunci asing ketika operasi SQL adalah pembaruan. SQL Server mengembalikan 0, 1, atau 2 untuk kolom ini:

0=CASCADE berubah menjadi kunci asing.

1=TIDAK ADA PERUBAHAN TINDAKAN jika ada kunci asing.

2=SET_NULL; atur kunci asing ke NULL.
DELETE_RULE smallint Tindakan yang diterapkan ke kunci asing ketika operasi SQL adalah penghapusan. SQL Server mengembalikan 0, 1, atau 2 untuk kolom ini:

0=CASCADE berubah menjadi kunci asing.

1=TIDAK ADA PERUBAHAN TINDAKAN jika ada kunci asing.

2=SET_NULL; atur kunci asing ke NULL.
FK_NAME nama sysname Pengidentifikasi kunci asing. Ini adalah NULL jika tidak berlaku untuk sumber data. SQL Server mengembalikan nama batasan KUNCI ASING.
PK_NAME nama sysname Pengidentifikasi kunci utama. Ini adalah NULL jika tidak berlaku untuk sumber data. SQL Server mengembalikan nama batasan KUNCI PRIMER.
DEFERRABILITY smallint Menunjukkan apakah pemeriksaan batasan dapat ditangguhkan.

Dalam tataan hasil, kolom FK_NAME dan PK_NAME selalu mengembalikan NULL.

Keterangan

sp_foreignkeys mengkueri kumpulan baris FOREIGN_KEYS antarmuka IDBSchemaRowset penyedia OLE DB yang sesuai dengan table_server. Parameter table_name, table_schema, table_catalog, dan kolom diteruskan ke antarmuka ini untuk membatasi baris yang dikembalikan.

Izin

Memerlukan izin SELECT pada skema.

Contoh

Contoh berikut mengembalikan informasi kunci asing tentang Department tabel dalam AdventureWorks2022 database di server tertaut, Seattle1.

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

Lihat Juga

sp_catalogs (T-SQL)
sp_column_privileges (T-SQL)
sp_indexes (T-SQL)
sp_linkedservers (T-SQL)
sp_primarykeys (T-SQL)
sp_tables_ex (T-SQL)
sp_table_privileges (T-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)