如何在SQL Server 2000 / SQL Server 2005的现有表中添加具有默认值的列?
ALTER TABLE {TABLENAME} ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} WITH VALUES
ALTER TABLE SomeTable ADD SomeCol Bit NULL --Or NOT NULL. CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is autogenerated. DEFAULT (0)--Optional Default-Constraint. WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.
可选的约束名称: 如果您省略CONSTRAINT D_SomeTable_SomeCol,SQL Server 将自动生成 一个具有有趣名称的默认约束,例如:DF__SomeTa__SomeC__4FB7FEF6
CONSTRAINT D_SomeTable_SomeCol
DF__SomeTa__SomeC__4FB7FEF6
可选的 With-Values 语句: 仅 当WITH VALUES您的列为 Nullable 并且您希望将默认值用于现有记录时才需要。 如果您的 Column 是NOT NULL,那么无论您是否指定,它都会自动使用 所有现有记录的默认值WITH VALUES。
WITH VALUES
NOT NULL
插入如何与默认约束一起使用:* 如果您将记录插入SomeTable并且不*指定SomeCol的值,那么它将默认为0。 如果您插入 Record**并***SpecifySomeCol的值作为NULL(并且您的列允许空值), 则默认约束将不会***被使用,NULL并将作为值插入。
SomeTable
SomeCol
0
NULL