Primary Keys SQL Server

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

Описание

В SQL Server (Transact-SQL) первичный ключ представляет собой одно поле или комбинацию полей, которые однозначно определяют запись. Ни одно из полей, которые являются частью первичного ключа, может содержать нулевое значение. В таблице может быть только один первичный ключ.
Первичный ключ может быть определен либо оператором CREATE TABLE, либо в предложении ALTER TABLE.

Создание первичного ключа - использование оператора CREATE TABLE

Вы можете создать первичный ключ в SQL Server с помощью оператора CREATE TABLE.

Синтаксис

Синтаксис создания первичного ключа с помощью оператора CREATE TABLE в SQL Server (Transact-SQL):

CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ] [ PRIMARY KEY ],
column2 datatype [ NULL | NOT NULL ],
...
);

ИЛИ

CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n)
);

Пример

рассмотрим пример создания первичного ключа с помощью оператора CREATE TABLE в SQL Server (Transact-SQL). Например:

В этом примере мы создали первичный ключ в таблице employees, который состоит из одного поля employee_id.
Мы могли бы также создать первичный ключ следующим образом:

Далее рассмотрим, как создать первичный ключ в SQL Server (Transact-SQL), где первичный ключ содержит более одного поля. Например:

В этом примере мы создали первичный ключ, состоящий из двух столбцов, столбцов last_name и first_name. Эти два поля однозначно определяют записи в таблице employees.

Создание первичного ключа - использование ALTER TABLE

Вы можете создать первичный ключ SQL Server (Transact-SQL) с помощью оператора ALTER TABLE. Однако вы можете использовать оператор ALTER TABLE для создания первичного ключа в столбце (столбцах), которые уже определены как NOT NULL. Если столбец (столбцы) допускают значения NULL, вы не сможете добавить первичный ключ, без dropp table и не воссоздавая таблицу.

Синтаксис

Синтаксис создания первичного ключа с использованием оператора ALTER TABLE в SQL Server (Transact-SQL):

ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n);

Пример

Рассмотрим пример создания первичного ключа с помощью оператора ALTER TABLE в SQL Server (Transact-SQL). Например:

В этом примере мы создали первичный ключ employee_pk в существующей таблице employees. Он состоит из поля employee_id. Опять же, важно отметить, что employee_id должен быть определен в операторе ALTER TABLE как поле NOT NULL. Если столбец employee_id допускает значения NULL, то таблицу employees следует удалить и воссоздать первичный ключ со значением поля employee_id, как NOT NULL.

Мы могли бы также создать первичный ключ с несколькими полями, как в приведенном ниже примере:

В этом примере мы создали первичный ключ в таблице employees, который состоит из полей last_name и first_name. Чтобы этот первичный ключ был создан успешно, - поля last_name и first_name в таблице employees должны быть определены как NOT NULL.

Удаление первичного ключа Drop Primary Key

Вы можете удалить первичный ключ в SQL Server с помощью оператора ALTER TABLE.

Синтаксис

Синтаксис удаления первичного ключа с помощью оператора ALTER TABLE в SQL Server (Transact-SQL):

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

Пример

Рассмотрим пример того, как удалить первичный ключ с помощью оператора ALTER TABLE в SQL Server (Transact-SQL). Например:

В этом примере мы удалили первичный ключ с именем employee_pk в таблице employees.

Отключить первичный ключ Disable Primary Key

Вы можете отключить первичный ключ, используя оператор ALTER INDEX в SQL Server (Transact-SQL).

Синтаксис

Синтаксис отключения первичного ключа с помощью оператора ALTER INDEX в SQL Server (Transact-SQL):

ALTER INDEX constraint_name ON table_name
DISABLE;

Пример

Рассмотрим пример того, как отключить первичный ключ с помощью оператора ALTER INDEX в SQL Server (Transact-SQL).
Например:

В этом примере мы отключили бы первичный ключ employee_pk в таблице employees.

Включить первичный ключ Enable Primary Key

Вы можете включить первичный ключ, используя оператор ALTER INDEX в SQL Server (Transact-SQL).

Синтаксис

Синтаксис включения первичного ключа с использованием оператора ALTER INDEX в SQL Server (Transact-SQL):

ALTER INDEX constraint_name ON table_name
REBUILD;

Пример

Рассмотрим пример включения первичного ключа с помощью оператора ALTER INDEX в SQL Server.

В этом примере мы включили первичный ключ employee_pk в таблице employees.