#sql-server-2008
#sql-server-2008
Вопрос:
Может ли кто-нибудь помочь мне выполнить задачу ниже.
Как я могу запретить столбцу разрешать значение null и разрешить нулевому столбцу не разрешать значение null.
Ответ №1:
Используйте ALTER TABLE table_name ALTER COLUMN column_name datatype [NOT] NULL
Пример:
CREATE TABLE #Foo
(
X INT NULL,
Y INT NOT NULL
)
/*This is metadata only change and very quick*/
ALTER TABLE #Foo ALTER COLUMN Y INT NULL
/*This requires all rows to be scanned to validate the data*/
ALTER TABLE #Foo ALTER COLUMN X INT NOT NULL
Комментарии:
1. Что делать, если данные существуют в таблице раньше.
2. Чтобы разрешить столбец
NULL
, тогда не имеет значения. При созданииNOT NULL
тогда нужныUPDATE
любые значения, которые являютсяNULL
первыми, иначеALTER TABLE
произойдет сбой