Search code examples
sqldatabasems-accessalter-tablealter-column

MS Access - sql expression for allow null?


I use MS Access (2003) database. Once I create a column I set NOT NULL using sql statement:

ALTER TABLE Table1 
ALTER column myColumn INTEGER not null      

Is there a way to change it back to allow null values? I already tried:

ALTER TABLE Table1 
ALTER column myColumn INTEGER null      

but nothing...


Solution

  • You cant specify null in ALTER TABLE (although not null is allowed)

    See the below documentation and also this discussion on this toppic

    Syntax

    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} }
    


    Old School Solution:-

    • create a new temporray field as null with the same datatype
    • update the new temporary field to the existing NOT NULL field
    • drop the old NOT NULL field
    • create the droped column with the same datatype again without NOT NULL
    • update the existing field to the temporary field
    • if there have been indices on the existing field, recreate these
    • drop the temporary field