序列作为列的默认值

时间:2013-01-19 10:30:56

标签: sql-server-2012

我已经创建了一个序列:

create sequence mainseq as bigint start with 1 increment by 1

如何将此序列用作列的默认值?

create table mytable(
    id      bigint not null default mainseq     -- how?
    code    varchar(20) not null
)

3 个答案:

答案 0 :(得分:29)

结果很简单:

create table mytable (
    id      bigint not null constraint DF_mytblid default next value for mainseq,
    code    varchar(20) not null
)

或者如果表已经创建:

alter table mytable
add constraint DF_mytblid
default next value for mainseq
for id

(谢谢Matt Strom的更正!)

答案 1 :(得分:11)

ALTER语句不完整。它需要另一个FOR子句来将默认值分配给所需的字段。

ALTER TABLE mytable
ADD CONSTRAINT DF_mytblid
DEFAULT (NEXT VALUE FOR mainseq) FOR [id]

答案 2 :(得分:-1)

header=0