如何将具有默认值的列添加到SQL Server 2000/SQL Server 2005中的现有表中?
当前回答
首先创建一个名为student的表:
CREATE TABLE STUDENT (STUDENT_ID INT NOT NULL)
向其中添加一列:
ALTER TABLE STUDENT
ADD STUDENT_NAME INT NOT NULL DEFAULT(0)
SELECT *
FROM STUDENT
将创建表,并使用默认值将列添加到现有表中。
其他回答
在SQL Server 2008-R2中,我进入设计模式(在测试数据库中),使用设计器添加我的两列,并使用GUI进行设置,然后臭名昭著的右键单击提供了“生成更改脚本”选项!
突然弹出一个小窗口,你猜到了,里面有格式正确的保证可以工作的更改脚本。按下简易按钮。
添加可为空的列时,WITH VALUES将确保将特定的DEFAULT值应用于现有行:
ALTER TABLE table
ADD column BIT -- Demonstration with NULL-able column added
CONSTRAINT Constraint_name DEFAULT 0 WITH VALUES
只有两行的最基本版本
ALTER TABLE MyTable
ADD MyNewColumn INT NOT NULL DEFAULT 0
在SQL Server中,可以使用以下模板:
ALTER TABLE {tablename}
ADD
{columnname} {datatype} DEFAULT {default_value}
例如,要将默认值为1的数据类型为int的新列〔列1〕添加到现有表〔表1〕中,可以使用以下查询:
ALTER TABLE [Table1]
ADD
[Column1] INT DEFAULT 1
ALTER TABLE <YOUR_TABLENAME>
ADD <YOUR_COLUMNNAME> <DATATYPE> <NULL|NOT NULL>
ADD CONSTRAINT <CONSTRAINT_NAME> ----OPTIONAL
DEFAULT <DEFAULT_VALUE>
如果您没有提供约束名称,那么SQLServer将使用默认名称。
示例:-
ALTER TABLE TEMP_TABLENAME
ADD COLUMN1 NUMERIC(10,0) NOT NULL
ADD CONSTRAINT ABCDE ----OPTIONAL
DEFAULT (0)
推荐文章
- 有人可以对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语句中使用别名?