Обновление SQL для разрешения нулевых значений - PullRequest
16 голосов
/ 20 марта 2012

У меня есть таблица в MSSQL, в которой есть столбец, в котором значение не может быть нулевым. Но есть обновление операции, где я хочу установить этот столбец в ноль, когда я обновляю другие столбцы. Есть ли такой способ добиться этого, или я должен воссоздать таблицу, позволяя столбцу принимать нулевые значения.

Ответы [ 4 ]

45 голосов
/ 20 марта 2012

Вы должны разрешить null для вашего столбца: alter table T1 alter column C1 int null

1 голос
/ 20 марта 2012

Возможно, вы могли бы сделать что-то вроде этого:

    "ALTER TABLE table ADD COLUMN newcolumn VARCHAR(255)"
    "UPDATE TABLE table SET newcolumn = oldcolumn"
    "ALTER TABLE table DROP COLUMN oldcolumn"
    "ALTER TABLE table ADD COLUMN oldcolumn VARCHAR(255)"
    "UPDATE TABLE table SET oldcolumn = newcolumn"
0 голосов
/ 20 марта 2012

используйте оператор ALTER TABLE, чтобы разрешить нулевые значения.

см. http://msdn.microsoft.com/en-us/library/ms190273.aspx

0 голосов
/ 20 марта 2012

Вам нужно будет обновить схему. Другого пути нет. Это причина ограничений. Вы можете выполнить изменение, чтобы избежать полного воссоздания таблицы, если у вас есть данные, которые не будут потеряны, то есть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...