Страницы

Поиск по вопросам

воскресенье, 9 июня 2019 г.

Почему sql server требует значение null?

Есть такой код -
CREATE TABLE [dbo].[Сотрудники] ( [Id] INT IDENTITY (1, 1) NOT NULL, [Имя] NCHAR (50) NOT NULL, [Фамлия] NCHAR (50) NOT NULL, [Отчество] NCHAR (50) NULL, [Дата рождения] DATE NOT NULL, [Должность] INT NOT NULL, [Отдел] INT NOT NULL, [Кабинет] INT NOT NULL, [Контакты] INT NOT NULL, [Город] NCHAR (50) NULL, [Адрес] NCHAR(100) NULL, [Телефон] NCHAR(10) NULL, PRIMARY KEY CLUSTERED ([Id] ASC));
Если я поставлю в Город, адрес или телефон not null, то при обновлении будет ошибка -
Warnings The column Адрес on table [dbo].[Сотрудники] must be changed from NULL to NOT NULL. If the table contains data, the ALTER script may not work. To avoid this issue, you must add values to this column for all rows or mark it as allowing NULL values, or enable the generation of smart-defaults as a deployment option
Почему так? Почему имя или фамилия могут быть notNull, а последнее три столбца нет?


Ответ

Потому что у вас в существующей таблице уже есть значения город, адрес или телефон с NULL.
Вам нужно сначала проапдейтить эти записи, а потом уже делать Alter table.
В общем-то вам об этом прямым текстом написано в сообщении об ошибке.

Комментариев нет:

Отправить комментарий