Изменение столбца: от нуля до нуля - PullRequest
1147 голосов
/ 27 марта 2009

У меня есть таблица, которая имеет несколько обнуляемых целочисленных столбцов. Это нежелательно по нескольким причинам, поэтому я собираюсь обновить все нули до 0, а затем установить для этих столбцов значение NOT NULL. Помимо изменения значений NULL на 0, данные должны быть сохранены.

Я ищу определенный синтаксис SQL , чтобы изменить столбец (назовите его ColumnA) на "not null". Предположим, что данные были обновлены и не содержат нулевых значений.

Использование SQL Server 2000 .

Ответы [ 13 ]

0 голосов
/ 12 ноября 2018

Вы можете изменить определение существующего столбца БД, используя следующий sql.

ALTER TABLE mytable modify mycolumn datatype NOT NULL;
0 голосов
/ 15 декабря 2015

Создание столбца, не равного NULL, и добавление значения по умолчанию также можно выполнить в графическом интерфейсе SSMS.

  1. Как уже говорили другие, вы не можете установить "not null", пока все существующие данные "не равны нулю", например:

UPDATE myTable SET myColumn = 0

  1. Как только это будет сделано, с таблицей в режиме конструктора (щелкните правой кнопкой мыши на таблицы и нажмите «Вид дизайна»), вы можете просто снять флажок Разрешить Пустые столбцы , например:

enter image description here

  1. Все еще в режиме конструктора с выбранным столбцом, вы можете увидеть Свойства столбца в окне ниже и установите значение по умолчанию 0 там, например так:

enter image description here

0 голосов
/ 13 июня 2014

Для встроенного javaDB, включенного в JDK (поддерживаемый Oracle дистрибутив Apache Derby), ниже работает для меня

alter table [table name] alter column [column name] not null;
...