我需要向MS SQL2005数据库添加一个具有初始值的新列.但是,我不想在此列上自动创建默认约束.在我添加列的时间点上,默认值/初始值是正确的,但这可能会随着时间的推移而改变.因此,将来对表的访问必须指定值,而不是接受默认值.
我能想出的最好办法是:
ALTER TABLE tbl ADD col INTEGER NULL
UPDATE tbl SET col = 1
ALTER TABLE tbl ALTER COLUMN col INTEGER NOT NULL
对于较大的表(100,000到1,000,000条记录)来说,这似乎有点低效.
我已经try 了添加带缺省值的列,然后删除缺省约束.但是,我不知道默认约束的名称是什么,我不想访问sysobjects并输入特定于数据库的知识.
拜托,一定有更好的办法.