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 = ] 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' ]
[ ; ]

Argumen

[ @table_server = ] N'table_server'

Nama server tertaut untuk mengembalikan informasi tabel. @table_server adalah sysname, tanpa default.

[ @pktab_name = ] N'pktab_name'

Nama tabel dengan kunci primer. @pktab_name adalah sysname, dengan default NULL.

[ @pktab_schema = ] N'pktab_schema'

Nama skema dengan kunci primer. @pktab_schema adalah sysname, dengan default NULL. Di SQL Server, parameter ini berisi nama pemilik.

[ @pktab_catalog = ] N'pktab_catalog'

Nama katalog dengan kunci primer. @pktab_catalog adalah sysname, dengan default NULL. Di SQL Server, parameter ini berisi nama database.

[ @fktab_name = ] N'fktab_name'

Nama tabel dengan kunci asing. @fktab_name adalah sysname, dengan default NULL.

[ @fktab_schema = ] N'fktab_schema'

Nama skema dengan kunci asing. @fktab_schema adalah sysname, dengan default NULL.

[ @fktab_catalog = ] N'fktab_catalog'

Nama katalog dengan kunci asing.@fktab_catalog adalah sysname, dengan default NULL.

Mengembalikan nilai kode

Tidak ada.

Tataan hasil

Berbagai produk sistem manajemen database (DBMS) mendukung penamaan tiga bagian untuk tabel (<catalog>.<schema>.<table>), 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 yang 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 yang 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 perubahan pada kunci asing.
1 = NO ACTION berubah 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 perubahan pada kunci asing.
1 = NO ACTION berubah jika ada kunci asing.
2 = SET_NULL; atur kunci asing ke NULL.
FK_NAME nama sysname Pengidentifikasi kunci asing. Ini NULL jika tidak berlaku untuk sumber data. SQL Server mengembalikan FOREIGN KEY nama batasan.
PK_NAME nama sysname Pengidentifikasi kunci utama. Ini NULL jika tidak berlaku untuk sumber data. SQL Server mengembalikan PRIMARY KEY nama batasan.
DEFERRABILITY smallint Menunjukkan apakah pemeriksaan batasan dapat ditangguhkan.

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

Keterangan

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

Izin

SELECT Memerlukan izin 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';