如何将具有默认值的列添加到SQL Server 2000/SQL Server 2005中的现有表中?
当前回答
这适用于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
其他回答
首先创建一个名为student的表:
CREATE TABLE STUDENT (STUDENT_ID INT NOT NULL)
向其中添加一列:
ALTER TABLE STUDENT
ADD STUDENT_NAME INT NOT NULL DEFAULT(0)
SELECT *
FROM STUDENT
将创建表,并使用默认值将列添加到现有表中。
Use:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
参考:ALTER TABLE(Transact-SQL)(MSDN)
在SQL Server 2008-R2中,我进入设计模式(在测试数据库中),使用设计器添加我的两列,并使用GUI进行设置,然后臭名昭著的右键单击提供了“生成更改脚本”选项!
突然弹出一个小窗口,你猜到了,里面有格式正确的保证可以工作的更改脚本。按下简易按钮。
例子:
ALTER TABLE [Employees] ADD Seniority 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();''' ;
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 如何从命令行通过mysql运行一个查询?
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何选择每一行的列值不是独特的