Последовательность в качестве значения по умолчанию для столбца
Я уже создал последовательность:
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 ответа
Решение
Это оказалось достаточно просто:
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
(спасибо Мэтту Строму за исправление!)
Утверждение ALTER не совсем завершено. Требуется еще одно предложение FOR, чтобы назначить значение по умолчанию для требуемого поля.
ALTER TABLE mytable
ADD CONSTRAINT DF_mytblid
DEFAULT (NEXT VALUE FOR mainseq) FOR [id]
create table users(
u_id int identity(1,1) primary key,
u_type varchar(30) default 'member',
entrydate datetime default (getdate()),
updatedate datetime default (getdate()),
isactive bit default 1,
firstname varchar(30),
lastname varchar(30),
email varchar(50),
password varchar(50)
)