sp_foreignkeys (T-SQL)
Berlaku untuk: SQL Server
Mengembalikan kunci asing yang mereferensikan kunci utama pada tabel di server tertaut.
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';