sp_pkeys (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Analytics Platform System (PDW) Warehouse in Microsoft Fabric
Restituisce informazioni sulle chiavi primarie di una tabella dell'ambiente corrente.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
-- Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Parallel Data Warehouse
sp_pkeys [ @table_name = ] 'name'
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
Argomenti
[ @table_name= ] 'name'
Tabella per cui restituire informazioni. name è sysname, senza impostazione predefinita. I criteri di ricerca con caratteri jolly non sono supportati.
[ @table_owner= ] 'owner'
Viene indicato il proprietario della tabella specificata. owner è sysname, con un valore predefinito NULL. I criteri di ricerca con caratteri jolly non sono supportati. Se il proprietario non è specificato, si applicano le regole di visibilità della tabella predefinite del sistema DBMS sottostante.
In SQL Server, se l'utente corrente è proprietario di una tabella con il nome specificato, vengono restituite le colonne della tabella. Se il proprietario non è specificato e l'utente corrente non è proprietario di una tabella con il nome specificato, questa procedura cerca una tabella con il nome specificato di proprietà del proprietario del database. Se viene individuata, vengono restituite le colonne di tale tabella.
[ @table_qualifier= ] 'qualificatore'
Qualificatore di tabella. Il qualificatore è sysname, con un valore predefinito NULL. Vari prodotti DBMS supportano la denominazione in tre parti per le tabelle (qualificatore.proprietario.nome). In SQL Server questa colonna rappresenta il nome del database. In alcuni prodotti rappresenta il nome del server dell'ambiente di database della tabella.
Valori del codice restituito
None
Set di risultati
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
TABLE_QUALIFIER | sysname | Nome del qualificatore della tabella. Questo campo può essere NULL. |
TABLE_OWNER | sysname | Nome del proprietario della tabella. Questo campo restituisce sempre un valore. |
TABLE_NAME | sysname | Nome della tabella. In SQL Server questa colonna rappresenta il nome della tabella elencato nella tabella sysobjects. Questo campo restituisce sempre un valore. |
COLUMN_NAME | sysname | Nome di ogni colonna restituita per la tabella specificata in TABLE_NAME. In SQL Server questa colonna rappresenta il nome della colonna elencato nella tabella sys.columns. Questo campo restituisce sempre un valore. |
KEY_SEQ | smallint | Numero sequenziale della colonna in una chiave primaria a più colonne. |
PK_NAME | sysname | Identificatore della chiave primaria. Se non è applicabile all'origine dei dati, restituisce NULL. |
Osservazioni:
La stored procedure sp_pkeys restituisce informazioni sulle colonne definite in modo esplicito con un vincolo PRIMARY KEY. Dato che le chiavi primarie denominate in modo esplicito non sono supportate in tutti i sistemi, lo strumento di implementazione che regola gli scambi tra i sistemi determina l'elemento che corrisponde a una chiave primaria. Il termine "chiave primaria" fa riferimento a una chiave primaria logica di una tabella. Si presume che su tutte le chiavi considerate chiavi primarie logiche sia definito un indice univoco. Tale indice viene inoltre restituito in sp_statistics.
La stored procedure sp_pkeys equivale a SQLPrimaryKeys in ODBC. I risultati restituiti sono ordinati per TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME e KEY_SEQ.
Autorizzazioni
È richiesta l'autorizzazione SELECT per lo schema.
Esempi
Nell'esempio seguente viene recuperata la chiave primaria della tabella HumanResources.Department
nel database AdventureWorks2022
.
USE AdventureWorks2022;
GO
EXEC sp_pkeys @table_name = N'Department'
,@table_owner = N'HumanResources';
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
Nell'esempio seguente viene recuperata la chiave primaria della tabella DimAccount
nel database AdventureWorksPDW2012
. Restituisce zero righe che indicano che la tabella non dispone di una chiave primaria.
-- Uses AdventureWorksPDW
EXEC sp_pkeys @table_name = N'DimAccount';
Vedi anche
Stored procedure del catalogo (Transact-SQL)
Stored procedure di sistema (Transact-SQL)