如何在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当你的列可以为空时,才需要 和想要的价值用于现有记录的默认值。 如果您的Column为NOT NULL,则 无论您是否指定,它都会自动对所有现有记录使用默认值WITH VALUES。
插入如何与默认约束一起工作: 如果您插入一个 RecordSomeTable并且没有指定SomeCol的值,那么它将默认为0。 如果您插入 Record并将其SomeCol值指定为NULL(并且您的列允许空值), 则不会使用Default-Constraint 并将NULL作为值插入。
笔记是基于下面每个人的很好的反馈。