Хотя я не знаю, какую СУБД вы используете, вам, вероятно, нужно указать всю спецификацию столбца, а не просто сказать, что вы хотите, чтобы она была обнуляемой. Например, если это в настоящее время INT NOT NULL, вы должны выдать ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.
ALTERTABLE Merchant_Pending_Functions MODIFY COLUMN`NumberOfLocations` INT null;
Это будет работать для вас.
Если вы хотите изменить ненулевой столбец, чтобы разрешить нулевой, нет необходимости включать не нулевое предложение. Поскольку столбцы по умолчанию становятся не нулевыми.
Ответы:
Предполагая
SQL Server
(на основе ваших предыдущих вопросов):Замените
INT
на ваш фактический тип данных.источник
для пользователей Oracle Database 10g:
Вы получаете «ORA-01735: неверная опция ALTER TABLE», если вы попытаетесь иначе
источник
Если бы это был синтаксис MySQL, этот тип отсутствовал бы, как указывают некоторые другие ответы. Правильный синтаксис MySQL был бы:
Публикация здесь для ясности пользователям MySQL.
источник
В PostgresQL это:
источник
Хотя я не знаю, какую СУБД вы используете, вам, вероятно, нужно указать всю спецификацию столбца, а не просто сказать, что вы хотите, чтобы она была обнуляемой. Например, если это в настоящее время
INT NOT NULL
, вы должны выдатьALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
.источник
Null
|NOT NULL
не указан, столбец будет обнуляться.Как уже отмечалось, точный синтаксис команды различается в зависимости от типа СУБД. Используемый вами синтаксис работает в Oracle:
источник
Для HSQLDB:
источник
Это будет работать для вас.
Если вы хотите изменить ненулевой столбец, чтобы разрешить нулевой, нет необходимости включать не нулевое предложение. Поскольку столбцы по умолчанию становятся не нулевыми.
источник
Это зависит от того, какой SQL Engine вы используете, в Sybase ваша команда работает нормально:
источник
оракул
источник
SQL_SCRIPT
?