Crear claves principales

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed Instance

Puede definir una clave principal en SQL Server mediante SQL Server Management Studio o Transact-SQL. Al crear una clave principal, se crea automáticamente un índice agrupado único o bien un índice no agrupado si así se especifica.

Antes de empezar

Limitaciones y restricciones

  • Una tabla solo puede incluir una restricción PRIMARY KEY.

  • Todas las columnas definidas en una restricción PRIMARY KEY se deben definir como NOT NULL. Si no se especifica nulabilidad, la nulabilidad de todas las columnas que participan en una restricción PRIMARY KEY se establece en NOT NULL.

Seguridad

Permisos

La creación de una tabla nueva con una clave principal requiere el permiso CREATE TABLE en la base de datos y el permiso ALTER en el esquema en el que se crea la tabla.

La creación de una clave principal de una tabla existente requiere el permiso ALTER en la tabla.

Usar SQL Server Management Studio

Creación de una clave principal

  1. En Explorador de objetos, haga clic con el botón derecho en la tabla a la que desea agregar una restricción única y seleccione Diseño.
  2. En Tabla Designer, seleccione el selector de filas de la columna de base de datos que desea definir como clave principal. Si desea seleccionar varias columnas, mantenga presionada la tecla CTRL mientras selecciona los selectores de filas para las otras columnas.
  3. Haga clic con el botón derecho en el selector de fila para la columna y seleccione Establecer clave principal.

Precaución

Si desea volver a definir la clave principal, debe eliminar las relaciones establecidas con la clave principal existente antes de crear una nueva. Un mensaje le advertirá de que las relaciones existentes se eliminarán automáticamente durante este proceso.

Las columnas de clave principal se indican mediante un símbolo de clave principal en el selector de fila.

Si una clave principal consta de más de una columna, se admitirán valores duplicados en una columna, pero cada combinación de valores de todas las columnas de la clave principal debe ser única.

Si define una clave compuesta, el orden de las columnas de la clave principal coincide con el de las columnas mostradas en la tabla. Sin embargo, puede cambiar el orden de las columnas después de crear la clave principal. Para obtener más información, vea Modificar claves principales.

Uso de Transact-SQL

Creación de una clave principal en una tabla existente

En el ejemplo siguiente se crea una clave principal en la columna TransactionID de la base de datos de AdventureWorks.

ALTER TABLE Production.TransactionHistoryArchive
   ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);

Creación de una clave principal en una tabla nueva

En el ejemplo siguiente se crea una tabla y se define una clave principal en la columna TransactionID de la base de datos de AdventureWorks.

CREATE TABLE Production.TransactionHistoryArchive1
   (
      TransactionID int IDENTITY (1,1) NOT NULL
      , CONSTRAINT PK_TransactionHistoryArchive1_TransactionID PRIMARY KEY CLUSTERED (TransactionID)
   )
;

Creación de una clave principal con un índice agrupado en una tabla nueva

En el ejemplo siguiente se crea una tabla y se define una clave principal en la columna CustomerID y un índice agrupado en TransactionID en la base de datos de AdventureWorks.

-- Create table to add the clustered index
CREATE TABLE Production.TransactionHistoryArchive1
   (
      CustomerID uniqueidentifier DEFAULT NEWSEQUENTIALID()
      , TransactionID int IDENTITY (1,1) NOT NULL
      , CONSTRAINT PK_TransactionHistoryArchive1_CustomerID PRIMARY KEY NONCLUSTERED (CustomerID)
   )
;

-- Now add the clustered index
CREATE CLUSTERED INDEX CIX_TransactionID ON Production.TransactionHistoryArchive1 (TransactionID);

Pasos siguientes