Gelöschter Datensatz wieder einfügen mit Unique Index (SQL-Server 2012)

fracalifa

Neuer Benutzer
Beiträge
4
Hallo DB'ler,

ich habe das Problem, einen gelöschten Datensatz wieder in eine Tabelle einzufügen und den Unique Index (ID) des Datensatzes auf den alten Wert zu setzen.
(Der Index ist logischerweise, in der bestehenden Tabelle nicht anderweitig vergeben worden - also unbelegt).

Randbedingungen:
- Der ehem. Datensatz ist in einer anderen Datenbank (Backup) vorhanden und verfügbar
- Die Tabelle ist mit keinem Fremdschlüssel innerhalb der Datenbank verbunden

Mein Versuch:
- Datenbank gesichert
- Unique Index abschalten und Tabellenänderung speichern (wollen)
--> Fehlermeldung: Speicherung von Änderungen nicht möglich (SQL-Server 2012)
(mit INSERT INTO ... SELECT ...) wäre das Wiederherstellen kein Problem gewesen.
anschließend Unique Index wieder einschalten
Das habe ich bei älteren Versionen von SQL-Server (2005) durchgeführt und das hatte problemlos geklappt.

Frage:
Wie bekomme ich den Datensatz wieder an die ursprüngliche Stelle (alter Unique Index) zurück.

Danke für Eure Vorschläge
Frank H.
 
Werbung:
Hi,

wenn dein Uniqui Index eine einfache IDENTITY-Spalte mit aufsteigender Nummer ist,
kannst du vor deinem Insert den Befehl

SET IDENTITY_INSERT [Tabellenname] ON;

Nach dem Einfügend er Dateizeile dann wieder abschalten.

Ansonsten ist deine Vorgehensweise schon korrekt,
was aber sein kann ist, dass du im Management-Studio die standardmäßig gesetzte Option aktiviert hast, die ein Speichern eines bestehenden Objektes,
dessen Grunddefinitionen verändert werden, nicht erlaubt.

Diese kannst du in den Optionen des Management-Studios deaktivieren:

upload_2016-11-8_12-17-0.png

Viele Grüße,
Tommi
 

Anhänge

  • upload_2016-11-8_12-16-51.png
    upload_2016-11-8_12-16-51.png
    55,2 KB · Aufrufe: 1
Werbung:
WOW Tommi,

das klingt nach einer Lösung !!!
Ja, meine INDENTITY-Spalte ist ein einfacher LONGINT, somit eigentlich einfach handlebar.
Werde mich heute Nacht an die Arbeit machen.

Vielen Dank,
werde berichten!

Gruß Frank
 
Zurück
Oben