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


当前回答

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

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

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

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

其他回答

ALTER TABLE <table name> 
ADD <new column name> <data type> NOT NULL
GO
ALTER TABLE <table name> 
ADD CONSTRAINT <constraint name> DEFAULT <default value> FOR <new column name>
GO
ALTER TABLE tbl_table ADD int_column int NOT NULL DEFAULT(0)

从该查询中,可以添加一列默认值为0的数据类型整数。

--Adding Value with Default Value
ALTER TABLE TestTable
ADD ThirdCol INT NOT NULL DEFAULT(0)
GO

您可以通过以下方式使用T-SQL完成此操作。

 ALTER TABLE {TABLENAME}
 ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
 CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}

此外,您还可以通过右键单击“设计”菜单中的表并将默认值设置为表来使用SQLServerManagementStudio。

此外,若要将同一列(若不存在)添加到数据库中的所有表中,请使用:

 USE AdventureWorks;
 EXEC sp_msforeachtable
'PRINT ''ALTER TABLE ? ADD Date_Created DATETIME DEFAULT GETDATE();''' ;

尝试以下查询:

ALTER TABLE MyTable
ADD MyNewColumn DataType DEFAULT DefaultValue

这将在表中添加一个新列。