533 Stimmen

Expliziter Wert für Identitätsspalte in Tabelle 'table' kann nicht eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist

Ich habe den folgenden Fehler, wenn ich das folgende Skript ausführe. Worum handelt es sich bei dem Fehler und wie kann er behoben werden?

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

Fehler:

Server: Msg 544, Ebene 16, Zustand 1, Zeile 1

Es kann kein expliziter Wert für die Identitätsspalte in der Tabelle 'table' eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist.

6voto

Onkar_M18 Punkte 1881

In Ihrer Abfrage wird OperationId erwähnt, die nicht vorhanden sein sollte, da sie automatisch inkrementiert wird.

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

Ihre Anfrage lautet also

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

5voto

Salem Kosemani Punkte 101

Eine andere Situation ist die Überprüfung, ob der Primärschlüssel die gleicher Name wie bei Ihren Klassen, bei denen der einzige Unterschied darin besteht, dass Ihr Primärschlüssel eine "ID" angehängt hat, oder um [Key] bei Primärschlüsseln anzugeben, die nicht mit dem Namen der Klasse zusammenhängen.

5voto

Die beste Lösung ist die Verwendung von Kommentaren GeneratedValue(strategy = ...) d.h.

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column ...
private int OperationID;

heißt es, dass diese Spalte von der Datenbank mit der IDENTITY-Strategie generiert wird und Sie sich nicht darum kümmern müssen - die Datenbank wird es tun.

4voto

Kate Kasinskaya Punkte 705

Wenn Sie dieses Problem bei der Verwendung eines Sql-Servers mit dem sequelize-typescript npm haben, stellen Sie sicher, dass Sie folgendes hinzufügen @AutoIncrement zur ID-Spalte:

  @PrimaryKey
  @AutoIncrement
  @Column
  id!: number;

2voto

Naresh Bisht Punkte 378

Ich habe dieses Problem gelöst, indem ich jedes Mal, wenn ich der Datenbank etwas hinzufügen möchte, ein neues Objekt erstellt habe.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X