В этом руководстве вы узнаете, как использовать ограничение SQL Server NOT NULL, чтобы гарантировать, что данные, содержащиеся в столбце, не являются NULL.
Введение в ограничение NOT NULL SQL Server
Ограничения SQL Server NOT NULL просто указывают, что столбец не должен принимать значение NULL.
В следующем примере создается таблица с ограничениями NOT NULL для столбцов: first_name, last_name и email:
CREATE SCHEMA hr; GO CREATE TABLE hr.persons( person_id INT IDENTITY PRIMARY KEY, first_name VARCHAR(255) NOT NULL, last_name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, phone VARCHAR(20) );
Обратите внимание, что ограничения NOT NULL всегда записываются как ограничения столбцов.
По умолчанию, если вы не укажете ограничение NOT NULL, SQL Server разрешит столбцу принимать NULL. В этом примере столбец phone может принимать NULL.
Добавить ограничение NOT NULL к существующему столбцу
Чтобы добавить ограничение NOT NULL к существующему столбцу, выполните следующие действия:
Сначала обновим таблицу так, чтобы в столбце не было значений NULL:
UPDATE table_name SET column_name = WHERE column_name IS NULL;
Во-вторых, измените таблицу, чтобы изменить свойство столбца:
ALTER TABLE table_name ALTER COLUMN column_name data_type NOT NULL;
Например, чтобы добавить ограничение NOT NULL к столбцу телефонов таблицы hr.persons, используйте следующие операторы:
Во-первых, если у человека нет номера телефона, обновите его на номер телефона компании, например,(408) 123 4567:
UPDATE hr.persons SET phone = "(408) 123 4567" WHER phone IS NULL;
Во-вторых, измените свойство столбца телефона:
ALTER TABLE hr.persons ALTER COLUMN phone VARCHAR(20) NOT NULL;
Удаление ограничения NOT NULL
Чтобы удалить ограничение NOT NULL из столбца, используйте оператор ALTER TABLE ALTER COLUMN следующим образом:
ALTER TABLE table_name ALTER COLUMN column_name data_type NULL;
Например, чтобы удалить ограничение NOT NULL из столбца телефонов, используйте следующий оператор:
ALTER TABLE hr.pesons ALTER COLUMN phone VARCHAR(20) NULL;
В этом руководстве вы узнали, как использовать ограничение SQL Server NOT NULL, чтобы столбец не принимал значение NULL.