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í informace o primárním klíči pro jednu tabulku v aktuálním prostředí.
Syntaxe
Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW).
sp_pkeys
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ ; ]
Arguments
[ @table_name = ] 'Ntable_name'
Specifikuje tabulku, pro kterou se mají vracet informace. @table_name je sysname, bez výchozího nastavení. Wildcard pattern matching není podporován.
[ @table_owner = ] N'table_owner'
Specifikuje vlastníka tabulky dané tabulky.
@table_owner je sysname, s výchozím nastavením NULL. Wildcard pattern matching není podporován. Pokud @table_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 @table_owner není specifikován a aktuální uživatel nevlastní tabulku s daným @table_name, tento postup hledá tabulku s určeným @table_name vlastněným vlastníkem databáze. Pokud existuje, sloupce této tabulky se vrátí.
[ @table_qualifier = ] N'table_qualifier'
Kvalifikace u stolu.
@table_qualifier je sysname, s výchozím .NULL Různé produkty DBMS podporují třífázové pojmenování tabulek (<qualifier>.<owner>.<name>). V SQL Serveru tento sloupec 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 |
|---|---|---|
TABLE_QUALIFIER |
sysname | Název kvalifikanta na tabulce. Toto pole může být .NULL |
TABLE_OWNER |
sysname | Jméno majitele stolu. Toto pole vždy vrací hodnotu. |
TABLE_NAME |
sysname | Název tabulky. V SQL Serveru tento sloupec představuje název tabulky, jak je uveden v tabulce sysobjects. Toto pole vždy vrací hodnotu. |
COLUMN_NAME |
sysname | Název sloupce, pro každý sloupec vráceného čísla TABLE_NAME . V SQL Serveru tento sloupec představuje název sloupce, jak je uveden v tabulce sys.columns . Toto pole vždy vrací hodnotu. |
KEY_SEQ |
smallint | Pořadové číslo sloupce v primárním klíči s více sloupci. |
PK_NAME |
sysname | Identifikátor primárního klíče. Vrácení NULL , pokud nejsou relevantní pro datový zdroj. |
Poznámky
sp_pkeys vrací informace o sloupcích explicitně definovaných s omezením PRIMARY KEY . Protože ne všechny systémy podporují explicitně pojmenované primární klíče, implementátor brány určuje, co primární klíč představuje. Termín primární klíč označuje logický primární klíč pro tabulku. Každý klíč uvedený jako logický primární klíč by měl mít definovaný unikátní index. Tento jedinečný index je také vrácen v sp_statistics.
Uložená sp_pkeys procedura je ekvivalentní jako SQLPrimaryKeys v ODBC. Výsledky jsou uspořádány podle TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, a .KEY_SEQ
Povolení
Vyžaduje SELECT povolení ke schématu.
Examples
Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .
Následující příklad získává primární klíč HumanResources.Department tabulky v databázi AdventureWorks2025 .
USE AdventureWorks2022;
GO
EXECUTE sp_pkeys
@table_name = N'Department',
@table_owner = N'HumanResources';
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
Následující příklad získává primární klíč DimAccount tabulky v databázi AdventureWorksPDW2012 . Vrací nulové řádky, což znamená, že tabulka nemá primární klíč.
-- Uses AdventureWorksPDW
EXECUTE sp_pkeys @table_name = N'DimAccount';
Související obsah
- Katalogizované uložené procedury (Transact-SQL)
- uložené procedury systému (Transact-SQL)