Microsoft SQL Server
Primaire sleutels
Zoeken…
Opmerkingen
Primaire sleutels worden gebruikt om een record in een tabel op unieke wijze te identificeren. Een tabel heeft mogelijk slechts één primaire sleutel (hoewel de primaire sleutel uit meerdere kolommen kan bestaan) en een primaire sleutel is vereist voor bepaalde soorten replicatie.
Primaire sleutels worden vaak gebruikt als (maar hoeven dat niet te zijn) de geclusterde index op een tabel.
Maak een tabel met identiteitskolom als primaire sleutel
-- 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
)
Maak een tabel met GUID primaire sleutel
-- 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
)
Maak een tabel met natuurlijke sleutel
-- 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
)
Maak een tabel met samengestelde sleutel
-- 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)
)
Voeg primaire sleutel toe aan bestaande tabel
ALTER TABLE person
ADD CONSTRAINT pk_PersonSSN PRIMARY KEY (ssn)
Opmerking: als de kolom met de primaire sleutel (in dit geval ssn
) meer dan één rij met dezelfde kandidaatsleutel heeft, mislukt de bovenstaande instructie, omdat de waarden van de primaire sleutel uniek moeten zijn.
Primaire sleutel verwijderen
ALTER TABLE Person
DROP CONSTRAINT pk_PersonSSN
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow