如何将具有默认值的列添加到SQL Server 2000/SQL Server 2005中的现有表中?
当前回答
ALTER TABLE tbl_table ADD int_column int NOT NULL DEFAULT(0)
从该查询中,可以添加一列默认值为0的数据类型整数。
其他回答
例子:
ALTER TABLE [Employees] ADD Seniority int not null default 0 GO
步骤1.首先,您必须使用添加字段来更改表
alter table table_name add field field_name data_type
步骤2创建默认值
USE data_base_name;
GO
CREATE DEFAULT default_name AS 'default_value';
步骤3然后您必须执行此过程
exec sp_bindefault 'default_name' , 'schema_name.table_name.field_name'
示例-
USE master;
GO
EXEC sp_bindefault 'today', 'HumanResources.Employee.HireDate';
有两种不同的方法来解决这个问题。两者都添加了一个默认值,但在这里为问题语句添加了完全不同的含义。
让我们从创建一些示例数据开始。
创建示例数据
CREATE TABLE ExistingTable (ID INT)
GO
INSERT INTO ExistingTable (ID)
VALUES (1), (2), (3)
GO
SELECT *
FROM ExistingTable
1.为以后的插入添加具有默认值的列
ALTER TABLE ExistingTable
ADD ColWithDefault VARCHAR(10) DEFAULT 'Hi'
GO
因此,现在我们在插入新记录时添加了一个默认列,如果没有提供值,它将默认值为“Hi”
INSERT INTO ExistingTable(ID)
VALUES (4)
GO
Select * from ExistingTable
GO
这解决了我们的问题,即默认值,但这里有一个解决问题的方法。如果我们希望在所有列中都有默认值,而不仅仅是将来的插入,该怎么办???为此,我们有方法2。
2.为所有插入添加具有默认值的列
ALTER TABLE ExistingTable
ADD DefaultColWithVal VARCHAR(10) DEFAULT 'DefaultAll'
WITH VALUES
GO
Select * from ExistingTable
GO
以下脚本将在每个可能的场景中添加一个具有默认值的新列。
希望这能为提出的问题增加价值。谢谢
SQL Server+更改表+添加列+默认值uniqueidentifier。。。
ALTER TABLE [TABLENAME] ADD MyNewColumn INT not null default 0 GO
--Adding New Column with Default Value
ALTER TABLE TABLENAME
ADD COLUMNNAME DATATYPE NULL|NOT NULL DEFAULT (DEFAULT_VALUE)
OR
--Adding CONSTRAINT And Set Default Value on Column
ALTER TABLE TABLENAME ADD CONSTRAINT [CONSTRAINT_Name] DEFAULT
(DEFAULT_VALUE) FOR [COLUMNNAME]
推荐文章
- SQL Server:过滤sp_who2的输出
- 使用SQL查询查找最近的纬度/经度
- 在SQL Server上使用varchar(MAX) vs TEXT
- Visual Studio: ContextSwitchDeadlock
- Sql Server字符串到日期的转换
- 将一列的多个结果行连接为一列,按另一列分组
- 检查MySQL表是否存在而不使用“select from”语法?
- 如何将SQL Azure数据库复制到本地开发服务器?
- SQL Server 2008不能用新创建的用户登录
- 在PostgreSQL中快速发现表的行数
- 更改varchar列的大小为较低的长度
- 从表中选择1是什么意思?
- SQL Server中User和Login的区别
- 在参数声明中,varchar(MAX)的大小是多少?
- 数据库性能调优有哪些资源?