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