默认列值

时间:2016-03-13 17:38:40

标签: sql sql-server

我正在尝试使用具有默认值的列的表。 现在我只能通过触发器将值更改为默认值来获得此功能,是否可以从一开始就在表中声明它?

是否可以使用Identity这样的内容,我不必将值传递给插入内容?

egx:插入直接值(2)

 and the table would become
 id | item
 1  | 2
 the id = 1, would be the deafult value

提前感谢!

2 个答案:

答案 0 :(得分:0)

使用default。您可以通过执行以下操作来更改现有列:

ALTER TABLE t ADD CONSTRAINT df_t_column DEFAULT 1 for id;

身份比较棘手。我建议将数据复制到临时表,删除表,使用标识列创建它并重新加载数据。

答案 1 :(得分:0)

您可以在创建表格时或之后创建约束。

create table
#test
(
id int identity(1,2),
name char(255) default newid(),
code int default 2
)

---if a table contains all default values,you can insert like below
insert into #test
default values

updated as per comments:
 create table
#test1
(
id int identity(1,2),
name char(255) default newid(),
code int default 2,
notdf int
)

---if a table contains one default value and rest all are default
insert into #test1(notdf)
select 2

此外,如果您想在创建表格后添加默认值,您可以像下面这样做

create table 
tt1
(
valuue int,
address char(2) not null
)

insert into tt1
select 1,'a'


ALTER TABLE tt1 ADD CONSTRAINT test1 DEFAULT null FOR address;