Разрешение значений NULL

Допустимость значения NULL в столбце определяет, могут ли строки таблицы содержать значения NULL для этого столбца. Значение NULL отличается от нуля (0), пробела или символьной строки нулевой длины, например "". Значение NULL обозначает, что поле не было заполнено. Присутствие NULL, как правило, подразумевает, что значение неизвестно или неопределенно. Например, значение NULL в столбце SellEndDate таблицы Production.Product базы данных База данных AdventureWorks2008R2 не означает, что это изделие не имеет даты окончания продаж, а говорит о том, что дата неизвестна или не была задана.

ПримечаниеПримечание

Рекомендуется избегать разрешать использование значений NULL, поскольку они усложняют выполнение запросов и процедур обновления. Кроме того, для столбцов со значением NULL не могут быть использованы некоторые параметры, например ограничения PRIMARY KEY.

Когда в таблицу вставляется строка без указания значения для столбца, допускающего значения NULL, компонент Database Engine присваивает ему значение NULL, если отсутствует определение DEFAULT или объект по умолчанию. Столбец, определенный с помощью ключевого слова NULL, также поддерживает явно заданное пользователем значение NULL, независимо от типа данных и наличия соответствующего значения по умолчанию. Значение NULL не следует заключать в кавычки, так как в этом случае оно будет рассматриваться как символьная строка «NULL».

Запрет значений NULL в столбце обеспечивает целостность данных, гарантируя, что столбец в строке будет всегда содержать данные. Если значения NULL запрещены, то пользователь, заполняя таблицу данными, должен ввести значения в столбцы, иначе строка таблицы не будет записана в базу данных.

ПримечаниеПримечание

Столбцы, определенные с помощью ограничения PRIMARY KEY или свойства IDENTITY, не допускают значений NULL.