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


当前回答

IF NOT EXISTS (
    SELECT * FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME ='TABLENAME' AND COLUMN_NAME = 'COLUMNNAME'
)
BEGIN
    ALTER TABLE TABLENAME ADD COLUMNNAME Nvarchar(MAX) Not Null default
END

其他回答

ALTER TABLE ADD ColumnName {Column_Type} Constraint

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

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

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

这适用于SQL Server:

ALTER TABLE TableName
ADD ColumnName (type) -- NULL OR NOT NULL
DEFAULT (default value)
WITH VALUES

例子:

ALTER TABLE Activities
ADD status int NOT NULL DEFAULT (0)
WITH VALUES

如果要添加约束,请执行以下操作:

ALTER TABLE Table_1
ADD row3 int NOT NULL
CONSTRAINT CONSTRAINT_NAME DEFAULT (0)
WITH VALUES

SQL Server+更改表+添加列+默认值uniqueidentifier。。。

ALTER TABLE [TABLENAME] ADD MyNewColumn INT not null default 0 GO

这也可以在SSMS GUI中完成。我在下面显示了默认日期,但默认值当然可以是任何值。

将表放在设计视图中(右键单击对象中的表浏览器->设计)向表中添加列(或单击要更新的列,如果它已经存在)在下面的列财产中,在默认值或绑定字段中输入(getdate())或“abc”或0或任何您想要的值,如下图所示: