我需要在 MS SQL 2005 数据库中添加一个具有初始值的新列。但是,我不想在此列上自动创建默认约束。在我添加列的时间点,默认/初始值是正确的,但这可能会随着时间而改变。因此,将来对表的访问必须指定一个值而不是接受默认值。
我能想到的最好的是:
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 条记录),这似乎有点低效。
我已经尝试添加具有默认值的列,然后删除默认约束。但是,我不知道默认约束的名称是什么,并且宁愿不访问 sysobjects 并输入数据库特定的知识。
拜托,一定有更好的方法。