Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance
Azure SQLAzure Synapse Analytics
PdW (Analytics Platform System)
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Vrací logické informace o cizím klíči pro aktuální prostředí. Tento postup ukazuje vztahy cizích klíčů včetně deaktivovaných cizích klíčů.
Syntaxe
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'
Název tabulky s primárním klíčem slouží k vrácení katalogových informací.
@pktable_name je sysname s výchozím nastavením NULL. Wildcard pattern matching není podporován. Tento parametr nebo parametr @fktable_name , případně obojí, musí být dodány.
[ @pktable_owner = ] N'pktable_owner'
Jméno vlastníka tabulky (s primárním klíčem) používané k vrácení informací z katalogu.
@pktable_owner je sysname s výchozím nastavením NULL. Wildcard pattern matching není podporován. Pokud @pktable_owner není specifikováno, platí výchozí pravidla pro viditelnost tabulek základního databázového systému (DBMS).
V SQL Serveru, pokud aktuální uživatel vlastní tabulku s tímto jménem, sloupce této tabulky se vrátí. Pokud @pktable_owner není specifikováno a aktuální uživatel nevlastní tabulku s daným @pktable_name, procedura hledá tabulku s určeným @pktable_name vlastněným vlastníkem databáze. Pokud existuje, sloupce této tabulky se vrátí.
[ @pktable_qualifier = ] N'pktable_qualifier'
Název kvalifikátoru tabulky (s primárním klíčem).
@pktable_qualifier je sysname s výchozím nastavením NULL. Různé produkty DBMS podporují třídílné pojmenování tabulek (qualifier.owner.name). V SQL Serveru kvalifikátor představuje název databáze. V některých produktech představuje název serveru databázového prostředí tabulky.
[ @fktable_name = ] N'fktable_name'
Název tabulky (s cizím klíčem) použitý k vrácení informací z katalogu.
@fktable_name je sysname s výchozím nastavením NULL. Wildcard pattern matching není podporován. Tento parametr nebo @pktable_name parametr, případně obojí, musí být dodány.
[ @fktable_owner = ] N'fktable_owner'
Jméno vlastníka tabulky (s cizím klíčem) se používá k vrácení informací z katalogu.
@fktable_owner je sysname s výchozím nastavením NULL. Wildcard pattern matching není podporován. Pokud @fktable_owner není specifikováno, platí výchozí pravidla viditelnosti tabulek v základním DBMS.
V SQL Serveru, pokud aktuální uživatel vlastní tabulku s tímto jménem, sloupce této tabulky se vrátí. Pokud @fktable_owner není specifikováno a aktuální uživatel nevlastní tabulku s daným @fktable_name, procedura hledá tabulku s určeným @fktable_name vlastněným vlastníkem databáze. Pokud existuje, sloupce této tabulky se vrátí.
[ @fktable_qualifier = ] N'fktable_qualifier'
Název kvalifikátoru tabulky (s cizím klíčem).
@fktable_qualifier je sysname s výchozím nastavením NULL. V SQL Serveru kvalifikátor představuje název databáze. V některých produktech představuje název serveru databázového prostředí tabulky.
Hodnoty návratového kódu
Žádné.
Sada výsledků
| Název sloupce | Datový typ | Description |
|---|---|---|
PKTABLE_QUALIFIER |
sysname | Název kvalifikátoru tabulky (s primárním klíčem). Toto pole může být .NULL |
PKTABLE_OWNER |
sysname | Název vlastníka tabulky (s primárním klíčem). Toto pole vždy vrací hodnotu. |
PKTABLE_NAME |
sysname | Název tabulky (s primárním klíčem). Toto pole vždy vrací hodnotu. |
PKCOLUMN_NAME |
sysname | Název sloupců primárních klíčů pro každý sloupec vráceného klíče TABLE_NAME . Toto pole vždy vrací hodnotu. |
FKTABLE_QUALIFIER |
sysname | Název kvalifikátoru tabulky (s cizím klíčem). Toto pole může být .NULL |
FKTABLE_OWNER |
sysname | Název majitele stolu (s cizím klíčem). Toto pole vždy vrací hodnotu. |
FKTABLE_NAME |
sysname | Název tabulky (s cizím klíčem). Toto pole vždy vrací hodnotu. |
FKCOLUMN_NAME |
sysname | Název sloupce cizího klíče pro každý sloupec vráceného klíče TABLE_NAME . Toto pole vždy vrací hodnotu. |
KEY_SEQ |
smallint | Pořadové číslo sloupce v primárním klíči s více sloupci. Toto pole vždy vrací hodnotu. |
UPDATE_RULE |
smallint | Akce aplikovaná na cizí klíč při aktualizaci SQL operace. Možné hodnoty:0
=
CASCADE Změny cizího tónu.1
=
NO ACTION změní, pokud je přítomen cizí klíč.2 = SET_NULL3 = výchozí nastavení |
DELETE_RULE |
smallint | Akce aplikovaná na cizí klíč, když je SQL operace smazáním. Možné hodnoty:0
=
CASCADE Změny cizího tónu.1
=
NO ACTION změní, pokud je přítomen cizí klíč.2 = SET_NULL3 = nastavit výchozí nastavení |
FK_NAME |
sysname | Identifikátor cizího klíče. Pokud ne, je NULL to relevantní pro datový zdroj. SQL Server vrací FOREIGN KEY název omezení. |
PK_NAME |
sysname | Identifikátor primárního klíče. Pokud ne, je NULL to relevantní pro datový zdroj. SQL Server vrací PRIMARY KEY název omezení. |
Výsledky vrácené jsou uspořádány podle FKTABLE_QUALIFIER, FKTABLE_OWNER, FKTABLE_NAME, a KEY_SEQ.
Poznámky
Kódování aplikací zahrnující tabulky s deaktivovanými cizími klíči lze implementovat následujícími metodami:
Dočasné vypnutí kontroly omezení (
ALTER TABLE NOCHECKneboCREATE TABLE NOT FOR REPLICATION) při práci s tabulkami a pak ji později znovu zapnutí.Používání triggerů nebo aplikačního kódu k vynucení vztahů.
Pokud je zadán název primární klíčové tabulky a název tabulky cizích klíčů je , NULLsp_fkeys vrátí všechny tabulky, které obsahují cizí klíč do dané tabulky. Pokud je zadán název tabulky cizích klíčů a název primární klíčové tabulky je , NULLsp_fkeys vrátí všechny tabulky spojené vztahem primárního klíče/cizího klíče cizím klíčem cizí klíče v tabulce cizích klíčů.
Uložená sp_fkeys procedura je ekvivalentní SQLForeignKeys v ODBC.
Povolení
Vyžaduje SELECT povolení ke schématu.
Examples
Následující příklad získává seznam cizích klíčů pro tabulku HumanResources.Department v databázi AdventureWorks2025 .
USE AdventureWorks2022;
GO
EXECUTE sp_fkeys
@pktable_name = N'Department',
@pktable_owner = N'HumanResources';
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
Následující příklad získává seznam cizích klíčů pro tabulku DimDate v databázi AdventureWorksPDW2012 . Žádné řádky nejsou vráceny, protože Azure Synapse Analytics nepodporuje cizí klíče.
EXECUTE sp_fkeys @pktable_name = N'DimDate';
Související obsah
- Katalogizované uložené procedury (Transact-SQL)
- uložené procedury systému (Transact-SQL)
- sp_pkeys (Transact-SQL)