концепция первичного ключа и индекса - PullRequest
0 голосов
/ 20 июля 2010

Я создаю столбец в качестве первичного ключа, это создает индексы автоматически?или мне нужно создать индексы явно.я предполагал, что первичный ключ также поддерживает индексы

Ответы [ 2 ]

2 голосов
/ 20 июля 2010

В SQL Server создание первичного ключа создаст уникальный кластеризованный индекс для этого столбца. или, более конкретно, от здесь

Примечание. Созданы ограничения PRIMARY KEY. кластерные индексы автоматически, если нет кластерный индекс уже существует на таблица и некластеризованный индекс не указывается при создании ПЕРВИЧНОГО КЛЮЧЕВОЕ ограничение.

0 голосов
/ 02 июня 2013

Это должно очистить воздух.

--creating a table without any primary key
CREATE table understanding_indexes
 (P_Id int,
 LastName varchar(255),
 FirstName varchar(255),
 Address varchar(255),
 City varchar(255)
 )
 --
 --checking for indexes
 sp_helpindex understanding_indexes

ВЫХОД

 The object 'understanding_indexes' does not have any indexes, or you do not have permissions.

--ADDING A NOT NULL CONSTRAINT
ALTER TABLE UNDERSTANDING_INDEXES 
ALTER COLUMN P_Id INTEGER
NOT NULL

--ADDING A PRIMARY KEY Constraint, can only be done on column which are not null.
ALTER TABLE UNDERSTANDING_INDEXES
ADD PRIMARY KEY (P_Id)

sp_helpindex understanding_indexes

ВЫХОД

PK__understa__A3420A5702084FDA  clustered, unique, primary key located on PRIMARY  P_Id

В целом, как только вы добавите ограничение первичного ключав таблицу автоматически добавляются кластеризованные индексы.

Эта иллюстрация показана на SQL Server 2008 R2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...