1 odpowiedź

Gdy zostaje stworzony klucz główny (PRIMARY KEY), silnik bazodanowy automatycznie tworzy indeks klastrowany (Unique Clustered Index) ale tylko jeśli do tej pory na tabeli nie był założony indeks klastrowany.

Można jednak wymusić stworzenie klucza głównego jako indeks nieklastrowany.

W jednej tabeli mogą istnieć zarówno klucz główny jako indeks nieklastrowany oraz całkowicie niezależny indeks klastrowany. W takim przypadku indeks klastrowany można stworzyć na kolumnie która nie jest kluczem głównym tylko jeżeli klucz główny został oznaczony jako indeks nieklastrowany.


Utworzenie klucza głównego (PRIAMRY KEY). SQL server domyślnie stworzy indeks klastrowany na kolumnie 'Id'.

CREATE TABLE User
(
	Id INT NOT NULL PRIMARY KEY,
	Email NVARCHAR(30)
)

Utworzenie klucza głównego (PRIAMRY KEY). Wymuszamy stworzenie indeksu nieklastrowanego na kolumnie 'Id'.

CREATE TABLE User
(
	Id INT NOT NULL PRIMARY KEY NONCLUSTERED,
	Email NVARCHAR(30)
)

Utworzenie klucza głównego (PRIAMRY KEY) wraz z indeksem nieklastrowanym na kolumnie 'Id'. Tworzymy także indeks klastrowany na kolumnie email.

CREATE TABLE User
(
	Id INT NOT NULL PRIMARY KEY NONCLUSTERED,
	Email NVARCHAR(30)
)
GO
CREATE CLUSTERED INDEX IX_User_EMail
    ON User (Id);
GO

Zaloguj się lub zarejestruj by dodać odpowiedź.


© 2018 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci