2023-10-11 10:00:11

将列更改为空

我想改变一个表列为空。我用过:

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

这将在修改处给出一个错误。正确的语法是什么?


当前回答

适用于SQL Server或TSQL

ALTER TABLE Complaint.HelplineReturn ALTER COLUMN IsDisposed BIT NULL 

其他回答

这取决于你使用的SQL引擎,在Sybase中你的命令可以正常工作:

ALTER TABLE Merchant_Pending_Functions 
Modify NumberOfLocations NULL;

Oracle数据库10g用户:

alter table mytable modify(mycolumn null);

当您尝试其他方法时,您将得到“ORA-01735: invalid ALTER TABLE选项”

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;

对于HSQLDB:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;

SQLite

ALTER TABLE命令有点特殊。不可能修改列。你必须创建一个新列,迁移数据,然后删除该列:

-- 1. First rename
ALTER TABLE
    Merchant_Pending_Functions
RENAME COLUMN
    NumberOfLocations
TO
   NumberOfLocations_old

-- 2. Create new column
ALTER TABLE
    Merchant_Pending_Functions
ADD COLUMN
    NumberOfLocations INT NULL

-- 3. Migrate data - you need to write code for that
-- 4. Drop the old column
ALTER TABLE
    Merchant_Pending_Functions
DROP COLUMN
    NumberOfLocations_old

甲骨文

修改表([column] NOT NULL)