当我执行下面的脚本时,我有以下错误。错误是关于什么,如何解决?
Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)
错误:
服务器:Msg 544,级别16,状态1,线路1 当IDENTITY_INSERT设置为OFF时,无法为表'table'中的标识列插入显式值。
当我执行下面的脚本时,我有以下错误。错误是关于什么,如何解决?
Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)
错误:
服务器:Msg 544,级别16,状态1,线路1 当IDENTITY_INSERT设置为OFF时,无法为表'table'中的标识列插入显式值。
当前回答
您正在为OperationId插入值,这是一个标识列。
您可以像这样在表上打开标识插入,以便您可以指定自己的标识值。
SET IDENTITY_INSERT Table1 ON
INSERT INTO Table1
/*Note the column list is REQUIRED here, not optional*/
(OperationID,
OpDescription,
FilterID)
VALUES (20,
'Hierachy Update',
1)
SET IDENTITY_INSERT Table1 OFF
其他回答
我不确定“插入表”的用途是什么,但如果你只是想插入一些值,请尝试:
Insert Into [tablename] (OpDescription,FilterID)
values ('Hierachy Update',1);
我有同样的错误消息出现,但我认为这应该工作。只要是主键,ID就应该自动递增。
你可以简单地使用这句话,例如,如果你的表名是学校。 在插入之前,确保identity_insert设置为ON,在插入查询之后,将identity_insert设置为OFF
SET IDENTITY_INSERT School ON
/*
insert query
enter code here
*/
SET IDENTITY_INSERT School OFF
每个人都评论SQL,但是在EntityFramework中发生了什么?我看了整篇文章,没人能解出EF。所以几天后,我找到了一个解决方案: 在EF Core的上下文中创建模型有这样一条指令:modelBuilder。实体<客户端>(实体=>{实体。属性(e => e.d id).ValueGeneratedNever();
这也会产生错误,解决方案:你必须通过ValueGeneratedOnAdd()改变它的工作!
您正在为OperationId插入值,这是一个标识列。
您可以像这样在表上打开标识插入,以便您可以指定自己的标识值。
SET IDENTITY_INSERT Table1 ON
INSERT INTO Table1
/*Note the column list is REQUIRED here, not optional*/
(OperationID,
OpDescription,
FilterID)
VALUES (20,
'Hierachy Update',
1)
SET IDENTITY_INSERT Table1 OFF
如果你在使用带有sequize -typescript npm的sql-server时遇到这个问题,请确保将@AutoIncrement添加到ID列:
@PrimaryKey
@AutoIncrement
@Column
id!: number;