В этом учебном пособии вы узнаете, как создавать удалять, отключать и включать первичный ключ SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
В SQL Server (Transact-SQL) первичный ключ представляет собой одно поле или комбинацию полей, которые однозначно определяют запись. Ни одно из полей, которые являются частью первичного ключа, может содержать нулевое значение. В таблице может быть только один первичный ключ.
Первичный ключ может быть определен либо оператором CREATE TABLE, либо в предложении ALTER TABLE.
Создание первичного ключа - использование оператора CREATE TABLE
Вы можете создать первичный ключ в SQL Server с помощью оператора CREATE TABLE.
Синтаксис
Синтаксис создания первичного ключа с помощью оператора CREATE TABLE в SQL Server (Transact-SQL):
(
column1 datatype [ NULL | NOT NULL ] [ PRIMARY KEY ],
column2 datatype [ NULL | NOT NULL ],
...
);
ИЛИ
(
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). Например:
1 2 3 4 5 6 |
CREATE TABLE employees ( employee_id INT PRIMARY KEY, last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, salary MONEY ); |
В этом примере мы создали первичный ключ в таблице employees, который состоит из одного поля employee_id.
Мы могли бы также создать первичный ключ следующим образом:
1 2 3 4 5 6 7 |
CREATE TABLE employees ( employee_id INT, last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, salary MONEY, CONSTRAINT employees_pk PRIMARY KEY (employee_id) ); |
Далее рассмотрим, как создать первичный ключ в SQL Server (Transact-SQL), где первичный ключ содержит более одного поля. Например:
1 2 3 4 5 6 |
CREATE TABLE employees ( last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, salary MONEY, CONSTRAINT employees_pk PRIMARY KEY (last_name, first_name) ); |
В этом примере мы создали первичный ключ, состоящий из двух столбцов, столбцов 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):
ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n);
Пример
Рассмотрим пример создания первичного ключа с помощью оператора ALTER TABLE в SQL Server (Transact-SQL). Например:
1 2 |
ALTER TABLE employees ADD CONSTRAINT employees_pk PRIMARY KEY (employee_id); |
В этом примере мы создали первичный ключ employee_pk в существующей таблице employees. Он состоит из поля employee_id. Опять же, важно отметить, что employee_id должен быть определен в операторе ALTER TABLE как поле NOT NULL. Если столбец employee_id допускает значения NULL, то таблицу employees следует удалить и воссоздать первичный ключ со значением поля employee_id, как NOT NULL.
Мы могли бы также создать первичный ключ с несколькими полями, как в приведенном ниже примере:
1 2 |
ALTER TABLE employees ADD CONSTRAINT employees_pk PRIMARY KEY (last_name, first_name); |
В этом примере мы создали первичный ключ в таблице 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):
DROP CONSTRAINT constraint_name;
Пример
Рассмотрим пример того, как удалить первичный ключ с помощью оператора ALTER TABLE в SQL Server (Transact-SQL). Например:
1 2 |
ALTER TABLE employees DROP CONSTRAINT employees_pk; |
В этом примере мы удалили первичный ключ с именем employee_pk в таблице employees.
Отключить первичный ключ Disable Primary Key
Вы можете отключить первичный ключ, используя оператор ALTER INDEX в SQL Server (Transact-SQL).
Синтаксис
Синтаксис отключения первичного ключа с помощью оператора ALTER INDEX в SQL Server (Transact-SQL):
DISABLE;
Пример
Рассмотрим пример того, как отключить первичный ключ с помощью оператора ALTER INDEX в SQL Server (Transact-SQL).
Например:
1 2 |
ALTER INDEX employees_pk ON employees DISABLE; |
В этом примере мы отключили бы первичный ключ employee_pk в таблице employees.
Включить первичный ключ Enable Primary Key
Вы можете включить первичный ключ, используя оператор ALTER INDEX в SQL Server (Transact-SQL).
Синтаксис
Синтаксис включения первичного ключа с использованием оператора ALTER INDEX в SQL Server (Transact-SQL):
REBUILD;
Пример
Рассмотрим пример включения первичного ключа с помощью оператора ALTER INDEX в SQL Server.
1 2 |
ALTER INDEX employees_pk ON employees REBUILD; |
В этом примере мы включили первичный ключ employee_pk в таблице employees.