如何将具有默认值的列添加到SQL Server 2000/SQL Server 2005中的现有表中?


当前回答

当要添加的列具有NOT NULL约束,但没有DEFAULT约束(值)时,请注意。在这种情况下,如果表中有任何行,ALTER TABLE语句将失败。解决方案是从新列中删除NOT NULL约束,或为其提供DEFAULT约束。

其他回答

或者,可以添加默认值,而不必显式命名约束:

ALTER TABLE [schema].[tablename] ADD  DEFAULT ((0)) FOR [columnname]

如果在创建此约束时存在现有默认约束的问题,则可以通过以下方式删除这些约束:

alter table [schema].[tablename] drop constraint [constraintname]

试试这个

ALTER TABLE Product
ADD ProductID INT NOT NULL DEFAULT(1)
GO
ALTER TABLE ADD ColumnName {Column_Type} Constraint

MSDN文章ALTERTABLE(Transact-SQL)具有所有altertable语法。

Use:

-- Add a column with a default DateTime  
-- to capture when each record is added.

ALTER TABLE myTableName  
ADD RecordAddedDate SMALLDATETIME NULL DEFAULT (GETDATE())  
GO 

例子:

ALTER TABLE tes 
ADD ssd  NUMBER   DEFAULT '0';