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


当前回答

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

ALTER TABLE Product 
ADD ReferenceID uniqueidentifier not null 
default (cast(cast(0 as binary) as uniqueidentifier))

其他回答

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 tableName ADD ColumnName datatype DEFAULT DefaultValue;

首先创建一个名为student的表:

CREATE TABLE STUDENT (STUDENT_ID INT NOT NULL)

向其中添加一列:

ALTER TABLE STUDENT 
ADD STUDENT_NAME INT NOT NULL DEFAULT(0)

SELECT * 
FROM STUDENT

将创建表,并使用默认值将列添加到现有表中。

OFFLINE和ONLINE与如何在NDB群集表上执行ALTER表有关。NDBCluster支持使用MySQL NDBCluster7.3及更高版本中的ALGORITHM=INPLACE语法进行联机ALTERTABLE操作。NDBCluster还支持特定于NDB的旧语法,该语法使用ONLINE和OFFLINE关键字。这些关键字从MySQL NDB Cluster 7.3开始就被弃用;它们在MySQL NDB Cluster 7.4中继续受支持,但在NDB Cluster的未来版本中可能会被删除。

IGNORE涉及ALTER语句如何处理新添加约束UNIQUE的列中的重复值。如果未指定IGNORE,则ALTER将失败且不会应用。如果指定IGNORE,则保留所有重复行的第一行,删除重置并应用ALTER。

ALTER_SPECICATION将是您正在更改的内容。要添加、删除或修改的列或索引,或要对列应用的约束。

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
       alter_specification [, alter_specification] ...

    alter_specification:
        ...
        ADD [COLUMN] (col_name column_definition,...)
        ...

Eg: ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;
ALTER TABLE ADD ColumnName {Column_Type} Constraint

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