sp_pkeys (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Warehouse do PDW (Analytics Platform System) no Microsoft Fabric
Retorna informações de chave primária para uma única tabela no ambiente atual.
Convenções de sintaxe de Transact-SQL
Sintaxe
Sintaxe para SQL Server, Banco de Dados SQL do Azure, Azure Synapse Analytics, PDW (Analytics Platform System).
sp_pkeys
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ ; ]
Argumentos
[ @table_name = ] N'table_name'
Especifica a tabela para a qual as informações serão retornadas. @table_name é sysname, sem padrão. Não há suporte para a correspondência de padrões curinga.
@table_owner [ = ] N'table_owner'
Especifica o proprietário da tabela especificada. @table_owner é sysname, com um padrão de NULL
. Não há suporte para a correspondência de padrões curinga. Se @table_owner não for especificado, as regras de visibilidade de tabela padrão do DBMS (sistema de gerenciamento de banco de dados) subjacente serão aplicadas.
No SQL Server, se o usuário atual possuir uma tabela com o nome especificado, as colunas dessa tabela serão retornadas. Se o @table_owner não for especificado e o usuário atual não possuir uma tabela com o @table_name especificado, este procedimento procurará uma tabela com o @table_name especificado pertencente ao proprietário do banco de dados. Caso exista, as colunas dessa tabela serão retornadas.
@table_qualifier [ = ] N'table_qualifier'
O qualificador de tabela. @table_qualifier é sysname, com um padrão de NULL
. Vários produtos DBMS suportam nomenclatura de três partes para 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.
Conjunto de resultados
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
TABLE_QUALIFIER |
sysname | Nome do qualificador da tabela. Este 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 do TABLE_NAME retornado. No SQL Server, essa coluna representa o nome da coluna, conforme listado sys.columns na tabela. 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 PRIMARY KEY
restrição. 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. O termo chave primária refere-se a uma chave primária lógica para uma tabela. Espera-se que cada chave listada como sendo uma chave primária lógica tenha um índice exclusivo definido nela. Esse índice exclusivo também é retornado em sp_statistics
.
O sp_pkeys
procedimento armazenado é equivalente ao SQLPrimaryKeys
ODBC. Os resultados são ordenados por TABLE_QUALIFIER
, TABLE_OWNER
, TABLE_NAME
, e KEY_SEQ
.
Permissões
Requer a permissão SELECT
no esquema.
Exemplos
Os exemplos de código do Transact-SQL deste artigo usa o banco de dados de exemplo AdventureWorks2022
ou AdventureWorksDW2022
, que pode ser baixado da home page Microsoft SQL Server Samples and Community Projects.
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';