当我执行下面的脚本时,我有以下错误。错误是关于什么,如何解决?

Insert table(OperationID,OpDescription,FilterID)
values (20,'Hierachy Update',1)

错误:

服务器:Msg 544,级别16,状态1,线路1 当IDENTITY_INSERT设置为OFF时,无法为表'table'中的标识列插入显式值。


当前回答

在我的情况下,我插入了比表中定义的更多的字符。

在我的表列用nvarchar(3)定义,我传递了超过3个字符,同样的错误消息来了。

这不是答案,但在某些情况下可能是类似的问题

其他回答

如果您使用Oracle SQL Developer进行连接,请记住添加/sqldev:stmt/

/sqldev:stmt/ set identity_insert TABLE on

在该表的实体中,将DatabaseGenerated属性添加到标识插入设置的列之上:

例子:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int TaskId { get; set; }

我通过每次向数据库添加任何东西时创建一个新对象来解决这个问题。

如果你在使用带有sequize -typescript npm的sql-server时遇到这个问题,请确保将@AutoIncrement添加到ID列:

  @PrimaryKey
  @AutoIncrement
  @Column
  id!: number;

你可以简单地使用这句话,例如,如果你的表名是学校。 在插入之前,确保identity_insert设置为ON,在插入查询之后,将identity_insert设置为OFF

SET IDENTITY_INSERT School ON
/*
  insert query
  enter code here
*/
SET IDENTITY_INSERT School OFF