У меня есть таблица, которая имеет несколько обнуляемых целочисленных столбцов. Это нежелательно по нескольким причинам, поэтому я собираюсь обновить все нули до 0, а затем установить для этих столбцов значение NOT NULL
. Помимо изменения нулей на 0
, данные должны быть сохранены.
Я ищу определенный синтаксис SQL, чтобы изменить столбец (вызвать его ColumnA
) на " not null
". Предположим, что данные были обновлены и не содержат нулевых значений.
Использование SQL Server 2000 .
sql-server
tsql
null
alter-table
alter-column
Кармический Кодер
источник
источник
NOT NULL
может привести к большому количеству регистрации.Ответы:
Сначала уберите все текущие
NULL
значения:Затем обновите определение таблицы, чтобы запретить «NULL»:
источник
У меня была та же проблема, но для поля по умолчанию было установлено значение null, и теперь я хочу установить его по умолчанию равным 0. Это потребовало добавления еще одной строки после решения mdb:
источник
Вам придется сделать это в два этапа:
источник
Для Oracle 11g мне удалось изменить атрибут столбца следующим образом:
В противном случае ответ Абатичева казался хорошим. Вы не можете повторить изменение - он жалуется (по крайней мере, в SQL Developer), что столбец уже не нулевой.
источник
datatype
. Простоcolumname NOT NULL
достаточно. Смотрите документацию .это сработало для меня:
источник
Пока столбец не является уникальным идентификатором
затем
Измените таблицу и задайте для поля значение, не равное NULL, и укажите значение по умолчанию 0
источник
это кажется проще, но работает только на Oracle:
Кроме того, вы можете добавлять столбцы, а не просто изменять их. Он обновляется до значения по умолчанию (0) в этом примере, если значение было нулевым.
источник
В случае
FOREIGN KEY CONSTRAINT
... возникнет проблема, если в столбце таблицы первичного ключа отсутствует '0'. Решение для этого ...ШАГ 1:
Отключите все ограничения, используя этот код:
ШАГ 2:
ШАГ 3:
Включите все ограничения, используя этот код:
источник
В моем случае у меня были трудности с опубликованными ответами. Я закончил тем, что использовал следующее:
Измените
VARCHAR(200)
свой тип данных и при необходимости измените значение по умолчанию.Если у вас нет значения по умолчанию, у вас возникнут проблемы с внесением этого изменения, так как по умолчанию будет нулевой конфликт.
источник
Давайте возьмем пример:
И я хочу изменить столбец
EMPLOYEE_NAME
наNOT NULL
. Этот запрос может быть использован для задачи:источник
Для встроенного javaDB, включенного в JDK (поддерживаемый Oracle дистрибутив Apache Derby), мне помогло следующее
источник
Сделать столбец не равным NULL и добавить значение по умолчанию также можно сделать в графическом интерфейсе SSMS.
UPDATE myTable SET myColumn = 0
источник
Вы можете изменить определение существующего столбца БД, используя следующий sql.
источник