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


当前回答

ALTER TABLE Protocols
ADD ProtocolTypeID int NOT NULL DEFAULT(1)
GO

DEFAULT的包含使用默认值填充现有行中的列,因此不违反NOT NULL约束。

其他回答

右键单击表名,然后单击“设计”,在最后一个列名下单击,然后输入“列名”、“数据类型”和“允许空值”。

然后在页面底部设置一个默认值或绑定:类似于“1”表示字符串或1表示int。

添加可为空的列时,WITH VALUES将确保将特定的DEFAULT值应用于现有行:

ALTER TABLE table
ADD column BIT     -- Demonstration with NULL-able column added
CONSTRAINT Constraint_name DEFAULT 0 WITH VALUES

向表中添加新列:

ALTER TABLE [table]
ADD Column1 Datatype

例如

ALTER TABLE [test]
ADD ID Int

如果用户希望使其自动递增,则:

ALTER TABLE [test]
ADD ID Int IDENTITY(1,1) NOT NULL
ALTER TABLE Table1 ADD Col3 INT NOT NULL DEFAULT(0)

您可以通过以下方式使用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();''' ;