Verwirrend IDENTITY_INSERT Fehler, sagt, es ist schon in einer anderen Tabelle
Ich versuche, die Wiederherstellung einer Datenbank aus einer text-Datei mit VBA. Zum einfügen der ID-Werte, ich nenne diese vor dem senden in den Einsätzen:
SET IDENTITY_INSERT TableName ON
Dies scheint zu funktionieren für die meisten TableNames, aber wenn ich es nennen, auf die Tabelle 'Konten' ich einen interessanten Fehler:
"IDENTITY_INSERT is already ON for table 'test.dbo.PropertyAssets'. Cannot perform SET operation for table 'Accounts'."
Ich vermute, dies hat zu tun mit Fremdschlüssel-constraints oder so, aber muss jeder wissen, für sicher?
- Die Fehlermeldung ist ziemlich eindeutig: Sie stellte sich auf die Identität Einsatz für
PropertyAssets
aber nie ausgeschaltet. - "jederzeit, nur eine Tabelle in einer Sitzung können die IDENTITY_INSERT-Eigenschaft AUF"
- Ahh. Nun, das ist definitiv NICHT klar aus der Fehlermeldung an sich,aber ich bekomme das wesentliche. Dies wird noch schwieriger und härter, indem die zweite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nur
IDENTITY_INSERT
für eine Tabelle zu einem Zeitpunkt in Ihre session. Wenn Sie es verwenden möchten, die auf mehreren Tabellen, die Sie brauchen, um esON
undOFF
konsequent, finden Sie unter der nachstehenden Vorlage:Brauchen Sie nur noch eine session. Ich habe einfach wieder mit der gleichen Datenbank und es läuft ohne Probleme.
Natürlich änderte ich das Skript set IDENTITY_INSERT auf OFF am Ende.