我正在尝试使用具有默认值的列的表。 现在我只能通过触发器将值更改为默认值来获得此功能,是否可以从一开始就在表中声明它?
是否可以使用Identity这样的内容,我不必将值传递给插入内容?
egx:插入直接值(2)
and the table would become
id | item
1 | 2
the id = 1, would be the deafult value
提前感谢!
答案 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;