Buscar..


Observaciones

Las claves primarias se utilizan para identificar de forma única un registro en una tabla. Una tabla solo puede tener una única clave principal (aunque la clave principal puede constar de varias columnas), y se requiere una clave principal para ciertos tipos de replicación.

Las claves primarias a menudo se usan como (pero no tienen que ser) el índice agrupado en una tabla.

Crear tabla con columna de identidad como clave principal

 -- Identity primary key - unique arbitrary increment number
 create table person (
 id int identity(1,1) primary key not null,
 firstName varchar(100) not null,
 lastName varchar(100) not null,
 dob DateTime not null,
 ssn varchar(9) not null
 )

Crear tabla con clave primaria GUID

 -- GUID primary key - arbitrary unique value for table
 create table person (
 id uniqueIdentifier default (newId()) primary key,
 firstName varchar(100) not null,
 lastName varchar(100) not null,
 dob DateTime not null,
 ssn varchar(9) not null
 )

Crear mesa con llave natural.

 -- natural primary key - using an existing piece of data within the table that uniquely identifies the record
 create table person (
 firstName varchar(100) not null,
 lastName varchar(100) not null,
 dob DateTime not null,
 ssn varchar(9) primary key not null
 )

Crear tabla w / clave compuesta

 -- composite key - using two or more existing columns within a table to create a primary key
 create table person (
 firstName varchar(100) not null,
 lastName varchar(100) not null,
 dob DateTime not null,
 ssn varchar(9) not null,
 primary key (firstName, lastName, dob)
 )

Añadir clave principal a la tabla existente

ALTER TABLE person
 ADD CONSTRAINT pk_PersonSSN PRIMARY KEY (ssn)

Tenga en cuenta que si la columna de clave principal (en este caso, ssn ) tiene más de una fila con la misma clave candidata, la declaración anterior fallará, ya que los valores de la clave principal deben ser únicos.

Eliminar clave principal

ALTER TABLE Person
 DROP CONSTRAINT pk_PersonSSN


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow