Подтвердить что ты не робот

Добавить столбцы с нулевым значением в существующую таблицу на SQL-сервере?

У меня уже есть таблица, состоящая из данных. Мне нужно изменить таблицу, чтобы добавить два новых столбца, которые не равны нулю. Как я могу это сделать без потери существующих данных?


Вот что я пробовал (щелкнув правой кнопкой мыши таблицу и выбрав "Дизайн" ):

  • Добавлены новые столбцы "EmpFlag" (бит, null), "CreatedDate" (datetime, нуль)

  • Обновлен столбец "EmpFlag" в таблице, чтобы иметь некоторые допустимые значения. (Просто хотел работать над одним полем, поэтому я не обновил поле "CreatedDate" )

  • Теперь щелкнул правой кнопкой мыши таблицу, дизайн и сделал ее не нулевой.

Когда я попытался сохранить, появилось это сообщение об ошибке:

Сохранение изменений не допускается. Необходимые изменения требуют следующие таблицы будут удалены и повторно созданы.

4b9b3361

Ответ 1

Вы только установили значение по умолчанию в новых столбцах, и это позволит вам их добавить.

alter table table_name
    add column_name datetime not null
       constraint DF_Default_Object_Name default (getdate())

или этот для поля varchar.

alter table table_name
    add column_name varchar(10) not null
       constraint DF_Default_Object_Name default ('A')

Вы также можете отказаться от значения по умолчанию, если оно вам не понадобится после добавления столбца.

alter table table_name
    drop constraint DF_Default_Object_Name

Ответ 2

Если вы не хотите размещать по умолчанию столбцы, вы можете:

  • создать новые столбцы как NULLable
  • ОБНОВЛЯЙТЕ существующие данные соответствующим образом
  • добавить ограничение NOT NULL

Ответ 3

Добавление новых столбцов NOT NULL с настройками по умолчанию может быть выполнено в графическом интерфейсе, как показано ниже. Изменение существующего значения NOT NULL выглядит по-другому. Я получаю то же сообщение, что и у вас. Одним из вариантов было бы создать новый столбец NOT NULL со значением по умолчанию, чтобы заменить старый столбец, а затем скопировать старые данные столбца в новые данные столбца.

  • Поместите таблицу в представление дизайна (щелкните правой кнопкой мыши по таблице- > выберите "Дизайн" )
  • Добавить столбец, выбрать тип данных
  • Снимите флажок "Разрешить Nulls" и установите значение по умолчанию или Binding = ваши значения по умолчанию, как показано ниже

введите описание изображения здесь