Partilhar via


sp_pkeys (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Armazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Devolve informação primária de chave para uma única tabela no ambiente atual.

Transact-SQL convenções de sintaxe

Sintaxe

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'

Especifica a tabela para a qual devolver a informação. @table_name é sysname, sem padrão. A correspondência de padrões coringa não é suportada.

[ @table_owner = ] N'table_owner'

Especifica o proprietário da tabela especificada. @table_owner é sysname, com o padrão de NULL. A correspondência de padrões coringa não é suportada. Se @table_owner não for especificado, aplicam-se as regras padrão de visibilidade de tabelas do sistema de gestão de bases de dados (SGBD) subjacente.

No SQL Server, se o utilizador atual possuir uma tabela com o nome especificado, as colunas dessa tabela são devolvidas. Se a @table_owner não for especificada, e o utilizador atual não possuir uma tabela com a @table_name especificada, este procedimento procura uma tabela com a @table_name especificada pertencente ao dono da base de dados. Se existir, as colunas dessa tabela são devolvidas.

[ @table_qualifier = ] N'table_qualifier'

O qualificador da tabela. @table_qualifier é sysname, com um padrão de NULL. Vários produtos SGBD suportam a nomenclatura em três partes para tabelas (<qualifier>.<owner>.<name>). No SQL Server, esta coluna representa o nome da base de dados. Em alguns produtos, representa o nome do servidor do ambiente de base de dados da tabela.

Valores de código de retorno

Nenhum.

Conjunto de resultados

Nome da coluna Tipo de dados Description
TABLE_QUALIFIER sysname Nome do qualificador da tabela. Este campo pode ser NULL.
TABLE_OWNER sysname Nome do dono da mesa. Este campo devolve sempre um valor.
TABLE_NAME sysname Nome da tabela. No SQL Server, esta coluna representa o nome da tabela conforme listado na tabela sysobjects. Este campo devolve sempre um valor.
COLUMN_NAME sysname Nome da coluna, para cada coluna do TABLE_NAME devolvido. No SQL Server, esta coluna representa o nome da coluna conforme listado na sys.columns tabela. Este campo devolve sempre um valor.
KEY_SEQ smallint Número de sequência da coluna numa chave primária multicolunar.
PK_NAME sysname Identificador de chave primária. Retorna NULL se não for aplicável à fonte de dados.

Observações

sp_pkeys devolve informação sobre colunas explicitamente definidas com uma PRIMARY KEY restrição. Como nem todos os sistemas suportam chaves primárias explicitamente nomeadas, o implementador do 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 único definido. Este índice único também é devolvido em sp_statistics.

O sp_pkeys procedimento armazenado é equivalente a SQLPrimaryKeys no ODBC. Os resultados estão ordenados por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, e KEY_SEQ.

Permissions

Requer SELECT permissão no esquema.

Examples

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.

O exemplo seguinte recupera a chave primária da HumanResources.Department tabela na AdventureWorks2025 base de dados.

USE AdventureWorks2022;
GO

EXECUTE sp_pkeys
    @table_name = N'Department',
    @table_owner = N'HumanResources';

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

O exemplo seguinte recupera a chave primária da DimAccount tabela na AdventureWorksPDW2012 base de dados. Devolve zero linhas, indicando que a tabela não tem uma chave primária.

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