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
- 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.
- 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.
- 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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de