Microsoft SQL Server
Primära nycklar
Sök…
Anmärkningar
Primära nycklar används för att identifiera en post i en tabell på ett unikt sätt. En tabell kan bara ha en enda primär nyckel (även om den primära nyckeln kan bestå av flera kolumner), och en primär nyckel krävs för vissa typer av replikering.
Primära nycklar används ofta som (men behöver inte vara) det klusterindex på ett bord.
Skapa tabell w / identitetskolumn som primärnyckel
-- 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
)
Skapa tabell w / GUID primär nyckel
-- 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
)
Skapa tabell w / naturlig nyckel
-- 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
)
Skapa tabell w / kompositnyckel
-- 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)
)
Lägg till primärnyckel till befintlig tabell
ALTER TABLE person
ADD CONSTRAINT pk_PersonSSN PRIMARY KEY (ssn)
Observera att om den primära nyckelkolumnen (i detta fall ssn
) har mer än en rad med samma kandidatnyckel, kommer ovanstående uttalande att misslyckas, eftersom primära nyckelvärden måste vara unika.
Radera primärnyckel
ALTER TABLE Person
DROP CONSTRAINT pk_PersonSSN
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow