Microsoft SQL Server
Klucze podstawowe
Szukaj…
Uwagi
Klucze podstawowe służą do jednoznacznej identyfikacji rekordu w tabeli. Tabela może mieć tylko jeden klucz podstawowy (chociaż klucz podstawowy może składać się z wielu kolumn), a klucz podstawowy jest wymagany w przypadku niektórych typów replikacji.
Klucze podstawowe są często używane jako (ale nie muszą) indeks klastrowany w tabeli.
Utwórz tabelę z kolumną tożsamości jako klucz podstawowy
-- 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
)
Utwórz tabelę z kluczem podstawowym 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
)
Utwórz tabelę z kluczem naturalnym
-- 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
)
Utwórz tabelę z kluczem kompozytowym
-- 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)
)
Dodaj klucz podstawowy do istniejącej tabeli
ALTER TABLE person
ADD CONSTRAINT pk_PersonSSN PRIMARY KEY (ssn)
Uwaga: jeśli kolumna klucza podstawowego (w tym przypadku ssn
) ma więcej niż jeden wiersz z tym samym kluczem kandydującym, powyższa instrukcja zakończy się niepowodzeniem, ponieważ wartości klucza podstawowego muszą być unikalne.
Usuń klucz podstawowy
ALTER TABLE Person
DROP CONSTRAINT pk_PersonSSN
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow