используя первичные ключи в SQL Server - PullRequest
0 голосов
/ 23 марта 2011

Когда я создаю первичный ключ для столбца «FirstName», автоматически ли создается кластерный индекс для этого столбца?

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Зависит от того, что вы указываете при создании ключа. SQL Server автоматически создает индексы для ключевых ограничений, но в качестве части синтаксиса ограничений вы можете указать CLUSTERED или NONCLUSTERED.

1 голос
/ 23 марта 2011

Да - это поведение SQL Server по умолчанию.

Так не должно быть - если вы создаете свой ПК с использованием сценария T-SQL, вы также можете сделать его некластеризованный PK и поместите ключ кластеризации в другой столбец.

ALTER TABLE dbo.YourTable
    ADD CONSTRAINT PK_YourTable
    PRIMARY KEY NONCLUSTERED(FirstName)

CREATE CLUSTERED INDEX CIX_YourTable
    ON dbo.YourTable(SomeOtherColumn)

В этом случае FirstName будет (некластеризованным) первичным ключом вашей таблицы, тогда как SomeOtherColumnбудет ключом кластеризации для той же таблицы.

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