
En este tutorial de SQL Server, aprenderá a usar la restricción PRIMARY KEY
de SQL Server para crear una llave primaria para una tabla.
Introducción a la restricción PRIMARY KEY
de SQL Server
Una llave primaria o PRIMARY KEY
es una columna o un grupo de columnas que identifica de forma exclusiva cada fila de una tabla. Puede crear una llave primaria para una tabla utilizando la restricción PRIMARY KEY
.
Si la llave principal consta de solo una columna, puede definir el uso de la restricción PRIMARY KEY
como una restricción de columna:
CREATE TABLE table_name (
pk_column data_type PRIMARY KEY,
...
);
En caso de que la llave primaria tenga dos o más columnas, debe usar la restricción PRIMARY KEY
como una restricción de tabla:
CREATE TABLE table_name (
pk_column_1 data_type,
pk_column_2 data type,
...
PRIMARY KEY (pk_column_1, pk_column_2)
);
Cada tabla puede contener solo una clave primaria. Todas las columnas que participan en la llave primaria deben definirse como NOT NULL
. SQL Server establece automáticamente la restricción NOT NULL
para todas las columnas de llave primaria si la restricción NOT NULL
no se especifica para estas columnas.
SQL Server también crea automáticamente un índice agrupado único (o un índice no agrupado si se especifica como tal) cuando crea una clave primaria.
Ejemplos de cómo utilizar la PRIMARY KEY
de SQL Server
El siguiente ejemplo crea una tabla con una llave primaria que consta de una columna:
CREATE TABLE sales.actividades (
actividad_id INT PRIMARY KEY IDENTITY,
actividad_name VARCHAR (255) NOT NULL,
actividad_date DATE NOT NULL
);
En esta tabla sales.actividades, la columna actividad_id es la columna de llave principal. Significa que la columna activity_id contiene valores únicos.
La propiedad IDENTITY
se usa para que la columna actividad_id genere automáticamente valores enteros únicos.
La siguiente instrucción crea una nueva tabla denominada sales.participantes cuya llave principal consta de dos columnas:
CREATE TABLE sales. participantes(
actividad_id int,
cliente_id int,
PRIMARY KEY(actividad_id, cliente_id)
);
En este ejemplo, los valores en la columna actividad_id o cliente_id pueden estar duplicados, pero cada combinación de valores de ambas columnas debe ser única.
Normalmente, una tabla siempre tiene una llave primaria definida en el momento de la creación. Sin embargo, a veces, una tabla existente puede no tener una llave primaria definida. En este caso, puede agregar una llave primaria a la tabla utilizando la instrucción ALTER TABLE
. Considere el siguiente ejemplo:
La siguiente instrucción crea una tabla sin una llave primaria:
CREATE TABLE sales.eventos(
evento_id INT NOT NULL,
evento_name VARCHAR(255),
start_date DATE NOT NULL,
duration DEC(5,2)
);
Para hacer que la columna evento_id sea la llave principal, use la siguiente instrucción ALTER TABLE
:
ALTER TABLE sales.eventos
ADD PRIMARY KEY(evento_id);
Ten en cuenta que si la tabla sales.eventos ya tiene datos, antes de modificar la columna evento_id como clave principal, debes asegurarte que los valores en evento_id sean únicos.
En este tutorial, has aprendido cómo usar la restricción PRIMARY KEY
de SQL Server para crear una clave primaria para una tabla.