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