Microsoft SQL Server
Llaves primarias
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