在SQL Server中向现有表添加一个带有默认值的列。
在SQL Server中向现有表添加一个带有默认值的列。
如何在现有的SQL Server 2000 / SQL Server 2005表中添加一个带有默认值的列?
admin 更改状态以发布 2023年5月23日
语法:
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
可选带值语句:
只有当列可空并且您需要为现有记录使用默认值时,才需要使用 WITH VALUES
。
如果列是 NOT NULL
,则它将自动使用默认值为所有现有记录,无论是否指定 WITH VALUES
。
默认约束的插入工作原理:
如果在向 SomeTable
中插入记录时未指定 SomeCol
的值,则其默认为 0
。
如果在插入记录时,指定了 SomeCol
的值为 NULL
(并且您的列允许为 null),
则默认约束将 不会 使用,而是将 NULL
插入为值。
备注基于下面所有人的反馈。
特别感谢:
@Yatrix、@WalterStabosz、@YahooSerious 和 @StackMan 的评论。