sp_pkeys (Transact-SQL)sp_pkeys (Transact-SQL)

Este tema se aplica a: SíSQL Server (a partir de 2008)Síbase de datos de SQL AzureSíalmacenamiento de datos de SQL Azure Sí Almacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Devuelve la información de clave principal de una única tabla en el entorno actual.Returns primary key information for a single table in the current environment.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse  

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

ArgumentosArguments

[ @table_name=] 'nombre'[ @table_name= ] 'name'
Es la tabla para la que se va a devolver información.Is the table for which to return information. nombre es sysname, no tiene ningún valor predeterminado.name is sysname, with no default. No se admite la coincidencia de patrón de caracteres comodín.Wildcard pattern matching is not supported.

[ @table_owner=] 'propietario'[ @table_owner= ] 'owner'
Especifica el propietario de la tabla especificada.Specifies the table owner of the specified table. propietario es sysname, su valor predeterminado es null.owner is sysname, with a default of NULL. No se admite la coincidencia de patrón de caracteres comodín.Wildcard pattern matching is not supported. Si propietario no se especifica, se aplican las reglas de visibilidad de tabla predeterminadas del DBMS subyacente.If owner is not specified, the default table visibility rules of the underlying DBMS apply.

En SQL ServerSQL Server, si el usuario actual posee una tabla en la que se especifica el nombre, se devuelven las columnas de esa tabla.In SQL ServerSQL Server, if the current user owns a table with the specified name, the columns of that table are returned. Si el propietario no se especifica y el usuario actual no posee una tabla con los valores especificados nombre, este procedimiento busca una tabla con los valores especificados nombre pertenecen a la propietario de la base de datos.If the owner is not specified and the current user does not own a table with the specified name, this procedure looks for a table with the specified name owned by the database owner. Si existe una, se devuelven las columnas de esa tabla.If one exists, the columns of that table are returned.

[ @table_qualifier=] 'calificador'[ @table_qualifier= ] 'qualifier'
Es el calificador de la tabla.Is the table qualifier. calificador de es sysname, su valor predeterminado es null.qualifier is sysname, with a default of NULL. Varios productos DBMS admiten nombres de tres partes para tablas (calificador ***.** propietario . nombre).Various DBMS products support three-part naming for tables (qualifier . owner . name*). En SQL ServerSQL Server, esta columna representa el nombre de la base de datos.In SQL ServerSQL Server, this column represents the database name. En algunos productos, representa el nombre del servidor del entorno de base de datos de la tabla.In some products, it represents the server name of the database environment of the table.

Valores de código de retornoReturn Code Values

NoneNone

Conjuntos de resultadosResult Sets

Nombre de columnaColumn name Tipo de datosData type DescriptionDescription
TABLE_QUALIFIERTABLE_QUALIFIER sysnamesysname Nombre del calificador de tabla.Name of the table qualifier. Este campo puede ser NULL.This field can be NULL.
TABLE_OWNERTABLE_OWNER sysnamesysname Nombre del propietario de la tabla.Name of the table owner. Este campo siempre devuelve un valor.This field always returns a value.
TABLE_NAMETABLE_NAME sysnamesysname Nombre de la tabla.Name of the table. En SQL ServerSQL Server, esta columna representa el nombre de la tabla como se muestra en la tabla sysobjects.In SQL ServerSQL Server, this column represents the table name as listed in the sysobjects table. Este campo siempre devuelve un valor.This field always returns a value.
COLUMN_NAMECOLUMN_NAME sysnamesysname Nombre de la columna, para cada columna de TABLE_NAME devuelta.Name of the column, for each column of the TABLE_NAME returned. En SQL ServerSQL Server, esta columna representa el nombre de la columna como se muestra en la tabla sys.columns.In SQL ServerSQL Server, this column represents the column name as listed in the sys.columns table. Este campo siempre devuelve un valor.This field always returns a value.
KEY_SEQKEY_SEQ smallintsmallint Número de secuencia de la columna en una clave principal con varias columnas.Sequence number of the column in a multicolumn primary key.
PK_NAMEPK_NAME sysnamesysname Identificador de la clave principal.Primary key identifier. Devuelve NULL si no es aplicable al origen de datos.Returns NULL if not applicable to the data source.

ComentariosRemarks

sp_pkeys devuelve información acerca de las columnas definidas explícitamente con una restricción PRIMARY KEY.sp_pkeys returns information about columns explicitly defined with a PRIMARY KEY constraint. 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.Because not all systems support explicitly named primary keys, the gateway implementer determines what constitutes a primary key. Observe que el término clave principal hace referencia a la clave principal lógica de una tabla.Note that the term primary key refers to a logical primary key for a table. Se espera que cada clave enumerada como clave principal lógica tenga un índice único definido en la misma.It is expected that every key listed as being a logical primary key has a unique index defined on it. Este índice único también se devuelve en sp_statistics.This unique index is also returned in sp_statistics.

El procedimiento almacenado sp_pkeys es equivalente a SQLPrimaryKeys en ODBC.The sp_pkeys stored procedure is equivalent to SQLPrimaryKeys in ODBC. Los resultados devueltos se ordenan por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME y KEY_SEQ.The results returned are ordered by TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, and KEY_SEQ.

PermissionsPermissions

Es necesario contar con un permiso de tipo SELECT sobre el esquema.Requires SELECT permission on the schema.

EjemplosExamples

En el siguiente ejemplo se recupera la clave principal de la tabla HumanResources.Department de la base de datos AdventureWorks2012.The following example retrieves the primary key for the HumanResources.Department table in the AdventureWorks2012 database.

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

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

En el siguiente ejemplo se recupera la clave principal de la tabla DimAccount de la base de datos AdventureWorksPDW2012.The following example retrieves the primary key for the DimAccount table in the AdventureWorksPDW2012 database. Devuelve cero filas que indica que la tabla no tiene una clave principal.It returns zero rows indicating that the table does not have a primary key.

-- Uses AdventureWorks  

EXEC sp_pkeys @table_name = N'DimAccount;  

Vea tambiénSee Also

Procedimientos almacenados del catálogo (Transact-SQL) Catalog Stored Procedures (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)System Stored Procedures (Transact-SQL)