Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 默认列值_Sql_Sql Server - Fatal编程技术网

Sql 默认列值

Sql 默认列值,sql,sql-server,Sql,Sql Server,我正在尝试创建一个具有默认值的列的表。 现在我只能通过让触发器将值更改为默认值来实现这一点,是否可以从一开始就在表中声明它 有没有可能像Identity这样的东西,我不必将值传递到insert中 egx:插入直接值(2) 提前谢谢 使用默认值。可以通过执行以下操作更改现有列: ALTER TABLE t ADD CONSTRAINT df_t_column DEFAULT 1 for id; 身份更为棘手。我建议将数据复制到临时表中,删除该表,使用标识列创建该表,然后重新加载数据。您可以在创建

我正在尝试创建一个具有默认值的列的表。 现在我只能通过让触发器将值更改为默认值来实现这一点,是否可以从一开始就在表中声明它

有没有可能像Identity这样的东西,我不必将值传递到insert中

egx:插入直接值(2)


提前谢谢

使用
默认值
。可以通过执行以下操作更改现有列:

ALTER TABLE t ADD CONSTRAINT df_t_column DEFAULT 1 for id;

身份更为棘手。我建议将数据复制到临时表中,删除该表,使用标识列创建该表,然后重新加载数据。

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

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;

您的第一个示例真的很酷,只有当它们都是默认值时,它才起作用?为什么?如果你有一个没有默认约束的值,加上1,插入时我可以只传递一个没有约束的值吗?默认值可以是主键还是外键约束?
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;