50 - Restricción primary key


Problema:

Trabajamos con la tabla "libros" de una librería.
Eliminamos la tabla, si existe:

 if object_id('libros') is not null
  drop table libros;

La creamos estableciendo el campo código como clave primaria:

 create table libros(
  codigo int not null,
  titulo varchar(40),
  autor varchar(30),
  editorial varchar(15),
  primary key (codigo)
 );

Veamos la restricción "primary key" que creó automáticamente SQL Server:

 exec sp_helpconstraint libros;

Aparece la siguiente información:

constraint_type			constraint_name		constraint_keys
-----------------------------------------------------------------------
PRIMARY KEY (clustered)		PK__libros__571DF1D5 	codigo

Vamos a eliminar la tabla y la crearemos nuevamente, sin establecer la clave primaria:

 drop table libros;
 create table libros(
  codigo int not null,
  titulo varchar(40),
  autor varchar(30),
  editorial varchar(15)
 );

Definimos una restricción "primary key" para nuestra tabla "libros" para asegurarnos que cada libro tendrá un código diferente y único:

 alter table libros
 add constraint PK_libros_codigo
 primary key(codigo);

Veamos la información respecto a ella:

 exec sp_helpconstraint libros;

Si intentamos ingresar un registro con un valor para el campo "codigo" que ya existe, no lo permite. Tampoco permite modificar un código colocando uno existente.

Si intentamos definir otra restricción "primary key", SQL Server no lo permite.




Retornar