仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
提示该报错信息,说明是执行给自增字段执行插入,如下所示:
CREATE TABLE “TT”(
“ID” INT IDENTITY(1, 1) NOT NULL,
“NAME” VARCHAR(50),
NOT CLUSTER PRIMARY KEY(“ID”));
insert into TT(id) values (‘666’);
执行以上插入语句,给自增字段id插入数据666,会提示这个报错,如果要消除该报错,要么在执行插入之前,执行语句:SET IDENTITY_INSERT t1 on;
SET IDENTITY_INSERT t1 on;
insert into t1(id) values (‘666’);
commit;
select * from “T1”;
但是该参数是作用于会话的,这个插入一旦执行完毕,就会自动重置为off
所以建议使用以下方式:
alter table TT drop IDENTITY ;
alter table TT add column id AUTO_INCREMENT;
CREATE TABLE “ECOLOGY_TARGET”.“TT”
(
“ID” INT AUTO_INCREMENT NOT NULL,
“NAME” VARCHAR(50),
NOT CLUSTER PRIMARY KEY(“ID”)) STORAGE(ON “ECOLOGY_TARGET”, CLUSTERBTR) AUTO_INCREMENT = 1;
把identify(1,1)改成auto_increment,就可以执行insert into了
文章
阅读量
获赞
