Megosztás a következőn keresztül:


sp_pkeys (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)Raktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egyetlen tábla elsődleges kulcsadatait adja vissza a jelenlegi környezetben.

Transact-SQL szintaxis konvenciók

Szemantika

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 = ] N'table_name'

Megadja a táblázatot, amelyhez az információt kell visszaadni. @table_namea sysname, alapértelmezett nélkül. A wildcard mintás párosítás nem támogatott.

[ @table_owner = ] N'table_owner'

Megadja a megadott tábla tábla tulajdonosát. @table_owner a sysname, alapértelmezettként NULL. A wildcard mintás párosítás nem támogatott. Ha @table_owner nincs megadva, akkor az alap adatbázis-kezelő rendszer (DBMS) alapértelmezett táblaláthatósági szabályai érvényesek.

Az SQL Serverben, ha a jelenlegi felhasználó rendelkezik egy megadott nevű táblával, akkor az adott tábla oszlopai visszatérnek. Ha a @table_owner nincs megadva, és a jelenlegi felhasználó nem rendelkezik táblával a megadott @table_name-vel, ez az eljárás olyan táblát keres, amelyhez a megadott @table_name az adatbázis tulajdonosa tartozik. Ha létezik ilyen, akkor a táblázat oszlopai visszakerülnek.

[ @table_qualifier = ] N'table_qualifier'

A táblázatbeli seletítő. @table_qualifiera sysname, alapértelmezésként NULL. Különböző adatbázis-alapú termékek háromrészes elnevezést támogatnak a táblákhoz (<qualifier>.<owner>.<name>). Az SQL Server esetében ez az oszlop az adatbázis nevét jelöli. Néhány termékben ez a tábla adatbázis környezetének szervernevét jelöli.

Kódértékek visszaadása

Nincs.

Eredményhalmaz

Oszlop név Adattípus Description
TABLE_QUALIFIER sysname A táblázat selejtező neve. Ez a mező lehet NULL.
TABLE_OWNER sysname Az asztaltulajdonos neve. Ez a mező mindig értéket ad vissza.
TABLE_NAME sysname A tábla neve. Az SQL Serverben ez az oszlop a táblanevet ábrázolja, ahogy azt a sysobjects táblában szerepel. Ez a mező mindig értéket ad vissza.
COLUMN_NAME sysname Az oszlop neve, minden visszatért TABLE_NAME oszlopra. Az SQL Serverben ez az oszlop a táblázatban felsorolt sys.columns oszlopnevet képviseli. Ez a mező mindig értéket ad vissza.
KEY_SEQ smallint Az oszlop sorszáma egy többoszlopos elsődleges kulcsban.
PK_NAME sysname Elsődleges kulcsazonosító. Visszaküldés NULL , ha nem vonatkozik az adatforrásra.

Megjegyzések

sp_pkeys információt ad vissza olyan oszlopokról, amelyek kifejezetten korlátozóval definiáltak PRIMARY KEY . Mivel nem minden rendszer támogatja kifejezetten elnevezett elsődleges kulcsokat, a gateway implementáló határozza meg, mi számít elsődleges kulcsnak. Az elsődleges kulcs kifejezés egy logikai elsődleges kulcsra utal egy táblázatban. Minden logikai elsődleges kulcsként feltüntetett kulcs egyedi indexet kell meghatároznia. Ez az egyedi index a -ben sp_statisticsis visszakerül.

A sp_pkeys tárolt eljárás ekvivalvana az SQLPrimaryKeys ODBC-vel. Az eredményeket , TABLE_QUALIFIERTABLE_OWNER, TABLE_NAME, és KEY_SEQ.

Permissions

Engedély SELECT szükséges a sémához.

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A következő példa az adatbázisban található tábla HumanResources.DepartmentAdventureWorks2025 elsődleges kulcsát kéri.

USE AdventureWorks2022;
GO

EXECUTE sp_pkeys
    @table_name = N'Department',
    @table_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ábla DimAccountAdventureWorksPDW2012 elsődleges kulcsát kéri. Nulla sor jelenik meg, ami azt jelzi, hogy a táblának nincs elsődleges kulcsa.

-- Uses AdventureWorksPDW
EXECUTE sp_pkeys @table_name = N'DimAccount';