如何使用默认值添加不可为空的列

时间:2008-10-08 12:15:29

标签: sql-server

通常我们需要在表中添加一个不可为空的列,这是一个非常重要的任务。使用默认约束原样不起作用,因此我们必须创建可为空的列,将它们更新为默认值,然后使它们不可为空。有没有更简单的方法来做到这一点?

1 个答案:

答案 0 :(得分:13)

是的,DEFAULT约束的WITH VALUES修饰符将默认值应用于现有行,从而消除了问题中描述的所有“硬”工作。

IF NOT EXISTS (SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('[caConfig]') AND [Name]='ExportWizardVersion')
ALTER TABLE [caConfig] 
    ADD 
        [ExportWizardVersion] varchar(5) not null CONSTRAINT DF_caConfig_ExportWizardVersion DEFAULT '5.8' WITH VALUES,
        [ExportPeriodEnd] varchar(10) not null CONSTRAINT DF_caConfig_ExportPeriodEnd DEFAULT 'MonthEnd' WITH VALUES