Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLAzure Synapse Analytics
Analytics Platform System (PDW)
Almacenamiento en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
Devuelve la información de clave principal de una única tabla en el entorno actual.
Convenciones de sintaxis de Transact-SQL
Sintaxis
Sintaxis para 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' ]
[ ; ]
Argumentos
[ @table_name = ] N'table_name'
Especifica la tabla para la que se va a devolver información. @table_name es sysname, sin ningún valor predeterminado. No se admite la coincidencia de patrones comodín.
[ @table_owner = ] N'table_owner'
Especifica el propietario de la tabla especificada.
@table_owner es sysname, con un valor predeterminado de NULL. No se admite la coincidencia de patrones comodín. Si no se especifica @table_owner , se aplican las reglas de visibilidad de tabla predeterminadas del sistema de administración de bases de datos (DBMS) subyacente.
En SQL Server, si el usuario actual posee una tabla con el nombre especificado, se devuelven las columnas de esa tabla. Si no se especifica el @table_owner y el usuario actual no posee una tabla con el @table_name especificado, este procedimiento busca una tabla con el @table_name especificado propiedad del propietario de la base de datos. Si existe una, se devuelven las columnas de esa tabla.
[ @table_qualifier = ] N'table_qualifier'
Calificador de tabla.
@table_qualifier es sysname, con un valor predeterminado de NULL. Varios productos de DBMS admiten la nomenclatura de tres partes para tablas (<qualifier>.<owner>.<name>). En SQL Server, esta columna representa el nombre de la base de datos. En algunos productos, representa el nombre del servidor del entorno de base de datos de la tabla.
Valores de código de retorno
Ninguno.
Conjunto de resultados
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
TABLE_QUALIFIER |
sysname | Nombre del calificador de tabla. Este campo puede ser NULL. |
TABLE_OWNER |
sysname | Nombre del propietario de la tabla. Este campo siempre devuelve un valor. |
TABLE_NAME |
sysname | Nombre de la tabla. En SQL Server, esta columna representa el nombre de la tabla como se muestra en la tabla sysobjects. Este campo siempre devuelve un valor. |
COLUMN_NAME |
sysname | Nombre de la columna, para cada columna del TABLE_NAME devuelto. En SQL Server, esta columna representa el nombre de columna como se muestra en la sys.columns tabla. Este campo siempre devuelve un valor. |
KEY_SEQ |
smallint | Número de secuencia de la columna en una clave principal con varias columnas. |
PK_NAME |
sysname | Identificador de la clave principal. Devuelve NULL si no es aplicable al origen de datos. |
Comentarios
sp_pkeys devuelve información sobre las columnas definidas explícitamente con una PRIMARY KEY restricción . Debido a que no todos los sistemas aceptan claves principales con nombre explícito, el implementador de puerta de enlace determina qué constituye una clave principal. El término clave principal hace referencia a una clave principal lógica para una tabla. Se espera que todas las claves enumeradas como una clave principal lógica tengan un índice único definido en ella. Este índice único también se devuelve en sp_statistics.
El sp_pkeys procedimiento almacenado es equivalente a SQLPrimaryKeys en ODBC. Los resultados se ordenan mediante TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAMEy KEY_SEQ.
Permisos
Es necesario contar con un permiso de tipo SELECT sobre el esquema.
Ejemplos
Los ejemplos de código de este artículo usan la base de datos de ejemplo de AdventureWorks2025 o AdventureWorksDW2025, que puede descargar de la página principal de Ejemplos de Microsoft SQL Server y proyectos de comunidad.
En el siguiente ejemplo se recupera la clave principal de la tabla HumanResources.Department de la base de datos AdventureWorks2025.
USE AdventureWorks2022;
GO
EXECUTE sp_pkeys
@table_name = N'Department',
@table_owner = N'HumanResources';
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
En el siguiente ejemplo se recupera la clave principal de la tabla DimAccount de la base de datos AdventureWorksPDW2012. Devuelve cero filas que indican que la tabla no tiene una clave principal.
-- Uses AdventureWorksPDW
EXECUTE sp_pkeys @table_name = N'DimAccount';