sp_fkeys (T-SQL)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Warehouse di Microsoft Fabric
Mengembalikan informasi kunci asing logis untuk lingkungan saat ini. Prosedur ini menunjukkan hubungan kunci asing termasuk kunci asing yang dinonaktifkan.
Sintaks
sp_fkeys [ @pktable_name = ] 'pktable_name'
[ , [ @pktable_owner = ] 'pktable_owner' ]
[ , [ @pktable_qualifier = ] 'pktable_qualifier' ]
{ , [ @fktable_name = ] 'fktable_name' }
[ , [ @fktable_owner = ] 'fktable_owner' ]
[ , [ @fktable_qualifier = ] 'fktable_qualifier' ]
Argumen
[ @pktable_name=] 'pktable_name'
Adalah nama tabel, dengan kunci utama, digunakan untuk mengembalikan informasi katalog. pktable_name adalah sysname, dengan default NULL. Pencocokan pola kartubebas tidak didukung. Parameter ini atau parameter fktable_name , atau keduanya, harus disediakan.
[ @pktable_owner=] 'pktable_owner'
Adalah nama pemilik tabel (dengan kunci utama) yang digunakan untuk mengembalikan informasi katalog. pktable_owner adalah sysname, dengan default NULL. Pencocokan pola kartubebas tidak didukung. Jika pktable_owner tidak ditentukan, aturan visibilitas tabel default dari DBMS yang mendasar berlaku.
Di SQL Server, jika pengguna saat ini memiliki tabel dengan nama yang ditentukan, kolom tabel tersebut dikembalikan. Jika pktable_owner tidak ditentukan dan pengguna saat ini tidak memiliki tabel dengan pktable_name yang ditentukan, prosedur mencari tabel dengan pktable_name yang ditentukan yang dimiliki oleh pemilik database. Jika ada, kolom tabel tersebut dikembalikan.
[ @pktable_qualifier =] 'pktable_qualifier'
Adalah nama kualifikasi tabel (dengan kunci primer). pktable_qualifier adalah sysname, dengan default NULL. Berbagai produk DBMS mendukung penamaan tiga bagian untuk tabel (qualifier.owner.name). Di SQL Server, kualifikasi mewakili nama database. Dalam beberapa produk, ini mewakili nama server lingkungan database tabel.
[ @fktable_name=] 'fktable_name'
Adalah nama tabel (dengan kunci asing) yang digunakan untuk mengembalikan informasi katalog. fktable_name adalah sysname, dengan default NULL. Pencocokan pola kartubebas tidak didukung. Parameter ini atau parameter pktable_name , atau keduanya, harus disediakan.
[ @fktable_owner =] 'fktable_owner'
Adalah nama pemilik tabel (dengan kunci asing) yang digunakan untuk mengembalikan informasi katalog. fktable_owner adalah sysname, dengan default NULL. Pencocokan pola kartubebas tidak didukung. Jika fktable_owner tidak ditentukan, aturan visibilitas tabel default dari DBMS yang mendasar berlaku.
Di SQL Server, jika pengguna saat ini memiliki tabel dengan nama yang ditentukan, kolom tabel tersebut dikembalikan. Jika fktable_owner tidak ditentukan dan pengguna saat ini tidak memiliki tabel dengan fktable_name yang ditentukan, prosedur mencari tabel dengan fktable_name yang ditentukan oleh pemilik database. Jika ada, kolom tabel tersebut dikembalikan.
[ @fktable_qualifier= ] 'fktable_qualifier'
Adalah nama kualifikasi tabel (dengan kunci asing). fktable_qualifier adalah sysname, dengan default NULL. Di SQL Server, kualifikasi mewakili nama database. Dalam beberapa produk, ini mewakili nama server lingkungan database tabel.
Mengembalikan Nilai Kode
Tidak ada
Tataan Hasil
Nama kolom | Jenis data | Deskripsi |
---|---|---|
PKTABLE_QUALIFIER | nama sysname | Nama kualifikasi tabel (dengan kunci primer). Bidang ini bisa NULL. |
PKTABLE_OWNER | nama sysname | Nama tabel (dengan kunci primer) pemilik. Bidang ini selalu mengembalikan nilai. |
PKTABLE_NAME | nama sysname | Nama tabel (dengan kunci primer). Bidang ini selalu mengembalikan nilai. |
PKCOLUMN_NAME | nama sysname | Nama kolom kunci utama, untuk setiap kolom TABLE_NAME yang dikembalikan. Bidang ini selalu mengembalikan nilai. |
FKTABLE_QUALIFIER | nama sysname | Nama kualifikasi tabel (dengan kunci asing). Bidang ini bisa NULL. |
FKTABLE_OWNER | nama sysname | Nama tabel (dengan kunci asing) pemilik. Bidang ini selalu mengembalikan nilai. |
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. Nilai yang mungkin: 0=CASCADE berubah menjadi kunci asing. 1=TIDAK ADA PERUBAHAN TINDAKAN jika ada kunci asing. 2 = atur null 3 = atur default |
DELETE_RULE | smallint | Tindakan yang diterapkan ke kunci asing ketika operasi SQL adalah penghapusan. Nilai yang mungkin: 0=CASCADE berubah menjadi kunci asing. 1=TIDAK ADA PERUBAHAN TINDAKAN jika ada kunci asing. 2 = atur null 3 = atur default |
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. |
Hasil yang dikembalikan diurutkan berdasarkan FKTABLE_QUALIFIER, FKTABLE_OWNER, FKTABLE_NAME, dan KEY_SEQ.
Keterangan
Pengkodian aplikasi yang menyertakan tabel dengan kunci asing yang dinonaktifkan dapat diimplementasikan dengan cara berikut:
Menonaktifkan sementara pemeriksaan batasan (ALTER TABLE NOCHECK atau CREATE TABLE NOT FOR REPLICATION) saat bekerja dengan tabel, lalu mengaktifkannya lagi nanti.
Menggunakan pemicu atau kode aplikasi untuk menegakkan hubungan.
Jika nama tabel kunci utama disediakan dan nama tabel kunci asing adalah NULL, sp_fkeys mengembalikan semua tabel yang menyertakan kunci asing ke tabel yang diberikan. Jika nama tabel kunci asing disediakan dan nama tabel kunci utama adalah NULL, sp_fkeys mengembalikan semua tabel yang terkait dengan kunci primer/hubungan kunci asing dengan kunci asing dalam tabel kunci asing.
Prosedur tersimpan sp_fkeys setara dengan SQLForeignKeys di ODBC.
Izin
SELECT
Memerlukan izin pada skema.
Contoh
Contoh berikut mengambil daftar kunci asing untuk HumanResources.Department
tabel dalam AdventureWorks2022
database.
USE AdventureWorks2022;
GO
EXEC sp_fkeys @pktable_name = N'Department'
,@pktable_owner = N'HumanResources';
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
Contoh berikut mengambil daftar kunci asing untuk DimDate
tabel dalam AdventureWorksPDW2012
database. Tidak ada baris yang dikembalikan karena Azure Synapse Analytics tidak mendukung kunci asing.
EXEC sp_fkeys @pktable_name = N'DimDate';
Lihat Juga
Prosedur Tersimpan Katalog (Transact-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)
sp_pkeys (T-SQL)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk