我使用MS Access(2003)数据库。创建列后,我使用sql语句设置NOT NULL:
ALTER TABLE Table1
ALTER column myColumn INTEGER not null
有没有办法把它改回允许空值?我已经试过了:
ALTER TABLE Table1
ALTER column myColumn INTEGER null
但什么都没有。。。
您不能在ALTER TABLE
中指定null
(尽管允许not null
)
请参阅以下文档以及关于此顶级的讨论
语法
ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] | ALTER COLUMN field type[(size)] | CONSTRAINT multifieldindex} | DROP {COLUMN field I CONSTRAINT indexname} }
老派解决方案:-
- 使用相同的数据类型创建一个新的temporray字段为null
- 将新的临时字段更新为现有的NOT NULL字段
- 删除旧的NOT NULL字段
- 再次创建具有相同数据类型但不为NOT NULL的删除列
- 将现有字段更新为临时字段
- 如果现有字段上有索引,请重新创建
- 删除临时字段
使用MODIFY
:-尝试类似的操作
ALTER TABLE Table1 MODIFY myColumn INT NULL;
我找到的唯一方法是直接在表上使用DAO。设置数据库。TableDefs(strTable1).Fields(strFieldName).Required=false