如何将具有默认值的列添加到SQL Server 2000/SQL Server 2005中的现有表中?
当前回答
向表中添加新列:
ALTER TABLE [table]
ADD Column1 Datatype
例如
ALTER TABLE [test]
ADD ID Int
如果用户希望使其自动递增,则:
ALTER TABLE [test]
ADD ID Int IDENTITY(1,1) NOT NULL
其他回答
如果默认值为Null,则:
在SQL Server中,打开目标表的树右键单击“列”==>新建列键入列“名称”,选择“类型”,然后选中“允许空值”复选框在菜单栏中,单击“保存”
完成!
您可以使用此查询:
ALTER TABLE tableName ADD ColumnName datatype DEFAULT DefaultValue;
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;
Use:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
参考:ALTER TABLE(Transact-SQL)(MSDN)
或者,可以添加默认值,而不必显式命名约束:
ALTER TABLE [schema].[tablename] ADD DEFAULT ((0)) FOR [columnname]
如果在创建此约束时存在现有默认约束的问题,则可以通过以下方式删除这些约束:
alter table [schema].[tablename] drop constraint [constraintname]
推荐文章
- 有人可以对SQL查询进行版权保护吗?
- 如何知道MySQL表最近一次更新?
- 如何转储一些SQLite3表的数据?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在MySQL中的一个查询中更新多个具有不同值的行
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?
- MySQL OR与IN性能
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 如何从SQL Server中的字符串中剥离所有非字母字符?
- 为什么我不能在DELETE语句中使用别名?