Как я могу запретить столбцу разрешать значение null и разрешить нулевому столбцу не разрешать значение null

#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 произойдет сбой