sp_pkeys (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Warehouse in Microsoft Fabric

Retorna informações de chave primária para uma única tabela no ambiente atual.

Convenções de sintaxe de Transact-SQL

Sintaxe

-- Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Parallel Data Warehouse  
  
sp_pkeys [ @table_name = ] 'name'       
    [ , [ @table_owner = ] 'owner' ]   
    [ , [ @table_qualifier = ] 'qualifier' ]  

Argumentos

[ @table_name= ] 'name'
É a tabela para a qual as informações devem ser retornadas. name é sysname, sem padrão. Não há suporte para a correspondência de padrão curinga.

[ @table_owner= ] 'owner'
Especifica o proprietário da tabela especificada. owner é sysname, com um padrão de NULL. Não há suporte para a correspondência de padrão curinga. Se o owner não for especificado, serão aplicadas as regras de visibilidade de tabela padrão do DBMS subjacente.

No SQL Server, se o usuário atual possuir uma tabela com o nome especificado, as colunas dessa tabela serão retornadas. Se o owner não estiver especificado e o usuário atual não possuir uma tabela com o name especificado, este procedimento procurará uma tabela com o name especificado, pertencente ao proprietário do banco de dados. Caso exista, as colunas dessa tabela serão retornadas.

[ @table_qualifier= ] 'qualifier'
É o qualificador da tabela. qualifier é sysname, com um padrão de NULL. Vários produtos de DBMS dão suporte à nomeação de três partes de tabelas (qualifier.owner.name). No SQL Server, essa coluna representa o nome do banco de dados. Em alguns produtos, representa o nome do servidor do ambiente de banco de dados da tabela.

Valores do código de retorno

Nenhum

Conjuntos de resultados

Nome da coluna Tipo de dados Descrição
TABLE_QUALIFIER sysname Nome do qualificador da tabela. Esse campo pode ser NULL.
TABLE_OWNER sysname Nome do proprietário da tabela. Esse campo sempre retorna um valor.
TABLE_NAME sysname Nome da tabela. No SQL Server, esta coluna representa o nome de tabela como listado na tabela sysobjects. Esse campo sempre retorna um valor.
COLUMN_NAME sysname Nome da coluna, para cada coluna de TABLE_NAME retornado. No SQL Server, esta coluna representa o nome de coluna como listado na tabela sys.columns. Esse campo sempre retorna um valor.
KEY_SEQ smallint Número de sequência da coluna em uma chave primária de várias colunas.
PK_NAME sysname Identificador da chave primária. Retorna NULL se não for aplicável à fonte de dados.

Comentários

sp_pkeys retorna informações sobre colunas explicitamente definidas com uma restrição PRIMARY KEY. Como nem todos os sistemas oferecem suporte a chaves primárias explicitamente nomeadas, o implementador de gateway determina o que constitui uma chave primária. Observe que o termo chave primária refere-se a uma chave primária lógica para uma tabela. Espera-se que cada chave listada como chave primária lógica tenha um índice exclusivo definido. Esse índice exclusivo também é retornado em sp_statistics.

O procedimento armazenado sp_fkeys é equivalente a SQLForeignKeys em ODBC. Os resultados retornados são ordenados porTABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME e KEY_SEQ.

Permissões

Requer a permissão SELECT no esquema.

Exemplos

O exemplo a seguir recupera a chaves primária para a tabela HumanResources.Department no banco de dados AdventureWorks2022.

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

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

O exemplo a seguir recupera a chaves primária para a tabela DimAccount no banco de dados AdventureWorksPDW2012. Ele retorna zero linhas indicando que a tabela não tem uma chave primária.

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

Consulte Também

procedimentos armazenados do catálogo (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)