通常我们需要向表中添加一个非空列,这是一项相当困难的任务。使用默认约束 原样 不起作用,因此我们必须创建可空列,将其更新为默认值,然后使其成为非空列。难道没有更简单的方法吗?
通常我们需要向表中添加一个非空列,这是一项相当困难的任务。使用默认约束 原样 不起作用,因此我们必须创建可空列,将其更新为默认值,然后使其成为非空列。难道没有更简单的方法吗?
是的,对于 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