Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Logikus idegen kulcsinformációkat ad vissza a jelenlegi környezethez. Ez az eljárás mutatja a külföldi kulcskapcsolatokat, beleértve a letiltott külföldi kulcsokat is.
Transact-SQL szintaxis konvenciók
Szemantika
sp_fkeys
[ [ @pktable_name = ] N'pktable_name' ]
[ , [ @pktable_owner = ] N'pktable_owner' ]
[ , [ @pktable_qualifier = ] N'pktable_qualifier' ]
[ , [ @fktable_name = ] N'fktable_name' ]
[ , [ @fktable_owner = ] N'fktable_owner' ]
[ , [ @fktable_qualifier = ] N'fktable_qualifier' ]
[ ; ]
Arguments
[ @pktable_name = ] N'pktable_name'
A táblázat neve, a fő kulminccsel együtt, a katalógusinformációt szolgáltatták vissza.
@pktable_namea sysname, alapértelmezettként NULL. A wildcard mintás párosítás nem támogatott. Ezt a paramétert vagy a @fktable_name paramétert, vagy mindkettőt meg kell adni.
[ @pktable_owner = ] N'pktable_owner'
A tábla tulajdonosának neve (a fő kulccsal) a katalógusinformáció visszaadásához szolgált.
@pktable_owner a sysname, alapértelmezettként NULL. A wildcard mintás párosítás nem támogatott. Ha @pktable_owner nincs megadva, akkor az alap adatbázis-kezelő rendszer (DBMS) alapértelmezett táblázat-láthatósági szabályai érvényesek.
Az SQL Serverben, ha a jelenlegi felhasználó rendelkezik egy megadott nevű táblával, az adott tábla oszlopai visszakerülnek. Ha @pktable_owner nincs megadva, és a jelenlegi felhasználó nem birtokolja a megadott @pktable_name táblát, az eljárás olyan táblát keres, amelyhez a megadott @pktable_name tartozik az adatbázis tulajdonosa. Ha létezik ilyen, akkor az adott táblázat oszlopai visszakerülnek.
[ @pktable_qualifier = ] N'pktable_qualifier'
A táblázat neve (az elsődleges kulcssal) kvalifikátor.
@pktable_qualifier a sysname, alapértelmezettként NULL. Különböző DBMS termékek háromrészes elnevezést támogatnak a táblákhoz (qualifier.owner.name). Az SQL Serverben a minősítő az adatbázis nevét jelöli. Egyes termékekben ez a tábla adatbázis környezetének szervernevét képviseli.
[ @fktable_name = ] N'fktable_name'
A tábla neve (idegen kulccsal) a katalógusinformációt szolgáltatja vissza.
@fktable_namea sysname, alapértelmezettként NULL. A wildcard mintás párosítás nem támogatott. Ezt a paramétert vagy a @pktable_name paramétert, vagy mindkettőt meg kell adni.
[ @fktable_owner = ] N'fktable_owner'
A táblázat tulajdonosának neve (idegen kulccsal) szolgált a katalógusinformáció visszaadására.
@fktable_owner a sysname, alapértelmezett értékével.NULL A wildcard mintás párosítás nem támogatott. Ha @fktable_owner nincs megadva, akkor az alap adatbázisok alapértelmezett táblázat láthatósági szabályai érvényesek.
Az SQL Serverben, ha a jelenlegi felhasználó rendelkezik egy megadott nevű táblával, az adott tábla oszlopai visszakerülnek. Ha @fktable_owner nincs megadva, és a jelenlegi felhasználó nem birtokolja a megadott @fktable_name táblát, az eljárás olyan táblát keres, amelyen a megadott @fktable_name az adatbázis tulajdonosa van. Ha létezik ilyen, akkor az adott táblázat oszlopai visszakerülnek.
[ @fktable_qualifier = ] N'fktable_qualifier'
A táblázat neve (idegen kulcscal) kvalifikátor.
@fktable_qualifier a sysname, alapértelmezett értékével.NULL Az SQL Serverben a minősítő az adatbázis nevét jelöli. Egyes termékekben ez a tábla adatbázis környezetének szervernevét képviseli.
Kódértékek visszaadása
Nincs.
Eredményhalmaz
| Oszlop név | Adattípus | Description |
|---|---|---|
PKTABLE_QUALIFIER |
sysname | A táblázat neve (a fő kulcs mellett) kvalifikátor. Ez a mező lehet NULL. |
PKTABLE_OWNER |
sysname | A tábla (a fő kulccsal együtt) tulajdonosának neve. Ez a mező mindig értéket ad vissza. |
PKTABLE_NAME |
sysname | A tábla neve (a fő kulvával). Ez a mező mindig értéket ad vissza. |
PKCOLUMN_NAME |
sysname | A visszatért oszlopok TABLE_NAME elsődleges kulcsoszlopainak neve. Ez a mező mindig értéket ad vissza. |
FKTABLE_QUALIFIER |
sysname | A táblázat neve (idegen kulcscal) kvalifikátor. Ez a mező lehet NULL. |
FKTABLE_OWNER |
sysname | A tábla neve (idegen kulccsal) tulajdonosa. Ez a mező mindig értéket ad vissza. |
FKTABLE_NAME |
sysname | A táblázat neve (idegen kulcscal). Ez a mező mindig értéket ad vissza. |
FKCOLUMN_NAME |
sysname | Az idegen kulcsoszlop neve, minden visszaadott TABLE_NAME oszlophoz. Ez a mező mindig értéket ad vissza. |
KEY_SEQ |
smallint | Az oszlop sorszáma egy többoszlopos elsődleges kulcsban. Ez a mező mindig értéket ad vissza. |
UPDATE_RULE |
smallint | Művelet az idegen kulcsra alkalmazva, amikor az SQL művelet frissítés. Lehetséges értékek:0
=
CASCADE Átalakulás idegen hangnemre.1
=
NO ACTION változik, ha idegen kulcs van.2 = SET_NULL3 = alapértelmezett beállítás |
DELETE_RULE |
smallint | Művelet az idegen kulcsra, amikor az SQL művelet törlés. Lehetséges értékek:0
=
CASCADE Átalakulás idegen hangnemre.1
=
NO ACTION változik, ha idegen kulcs van.2 = SET_NULL3 = alapértelmezett beállítás |
FK_NAME |
sysname | Külföldi kulcsazonosító.
NULL Ha nem alkalmazható az adatforrásra. Az SQL Server adja vissza a FOREIGN KEY korlátozás nevet. |
PK_NAME |
sysname | Elsődleges kulcsazonosító.
NULL Ha nem alkalmazható az adatforrásra. Az SQL Server adja vissza a PRIMARY KEY korlátozás nevet. |
A visszaadott eredményeket , FKTABLE_QUALIFIER, FKTABLE_OWNER, és FKTABLE_NAME. sorrendben KEY_SEQrendezik.
Megjegyzések
Az alkalmazáskódolás, amely letiltott külföldi kulcsokkal rendelkező táblákat tartalmaz, az alábbi módszerekkel valósítható meg:
Ideiglenesen letiltom a korlátozásellenőrzést (
ALTER TABLE NOCHECKvagyCREATE TABLE NOT FOR REPLICATION) a táblázatokkal való munka közben, majd később újra engedélyezem.Triggerek vagy alkalmazáskód használata a kapcsolatok érvényesítésére.
Ha a fő kulcstábla neve megadva van, és az idegen kulcstáblának a NULLneve, sp_fkeys akkor minden olyan tábla visszaad, amely idegen kulcsot tartalmaz a megadott táblában. Ha megadják az idegen kulcstáblás név, és a fő kulcstábla neve NULL, sp_fkeys az összes táblát visszaad, amely egy elsődleges kulcs/idegen kulcs kapcsolattal kapcsolódik az idegen kulcstáblában lévő idegen kulcsokhoz.
A sp_fkeys tárolt eljárás az ODBC-ben az SQLForeignKeys értékű eljárással.
Permissions
Engedély SELECT szükséges a sémához.
Példák
A következő példa az adatbázisban található táblázat HumanResources.Department külföldi kulcsainak AdventureWorks2025 listáját kéri.
USE AdventureWorks2022;
GO
EXECUTE sp_fkeys
@pktable_name = N'Department',
@pktable_owner = N'HumanResources';
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
A következő példa az adatbázisban található táblázat DimDate külföldi kulcsainak AdventureWorksPDW2012 listáját kéri. Nem térnek vissza sorok, mert az Azure Synapse Analytics nem támogatja az idegen kulcsokat.
EXECUTE sp_fkeys @pktable_name = N'DimDate';