sp_pkeys (Transact-SQL)

Restituisce informazioni sulle chiavi primarie di una tabella dell'ambiente corrente.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

sp_pkeys [ @table_name = ] 'name'     
      [ , [ @table_owner = ] 'owner' ] 
   [ , [ @table_qualifier = ] 'qualifier' ]

Argomenti

  • [ @table\_name= ] 'name'
    Tabella per cui si desidera ottenere informazioni. name è di tipo sysname e non prevede alcun valore predefinito. I criteri di ricerca con caratteri jolly non sono supportati.

  • [ @table\_owner= ] 'owner'
    Viene indicato il proprietario della tabella specificata. owner è di tipo sysname e il valore predefinito è NULL. I criteri di ricerca con caratteri jolly non sono supportati. Se non si specifica owner, vengono applicate le regole di visibilità della tabella predefinite del sistema DBMS sottostante.

    In SQL Server, se l'utente corrente è il proprietario di una tabella con il nome specificato, vengono restituite le colonne di tale tabella. Se owner viene omesso e l'utente corrente non è il proprietario di una tabella con il valore name specificato, viene eseguita la ricerca di una tabella con nome corrispondente al valore name specificato e di proprietà del proprietario del database. Se viene individuata, vengono restituite le colonne di tale tabella.

  • [ @table\_qualifier= ] 'qualifier'
    Qualificatore di tabella. qualifier è di tipo sysname e il valore predefinito è NULL. Vari prodotti DBMS supportano nomi di tabella composti da tre parti, ovvero qualifier**.owner.**name. 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 di codice restituiti

Nessuno

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 di tabella elencato nella tabella sysobjects. Questo campo restituisce sempre un valore.

COLUMN_NAME

sysname

Nome di ogni colonna della tabella TABLE_NAME restituita. In SQL Server, questa colonna rappresenta il nome di 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

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 univoco viene inoltre restituito in sp_statistics.

La stored procedure sp_pkeys è equivalente a SQLPrimaryKeys in ODBC. I risultati restituiti vengono ordinati in base a TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME e KEY_SEQ.

Autorizzazioni

È necessario disporre dell'autorizzazione SELECT per lo schema.

Esempi

Nell'esempio seguente viene recuperata la chiave primaria della tabella HumanResources.Department nel database AdventureWorks2012.

USE AdventureWorks2012;
GO
EXEC sp_pkeys @table_name = N'Department'
    ,@table_owner = N'HumanResources';

Vedere anche

Riferimento

Stored procedure di catalogo (Transact-SQL)

Stored procedure di sistema (Transact-SQL)