ukulele
Datenbank-Guru
- Beiträge
- 5.314
Ich bin grade in einer Migration und die Software passt im Laufe dieser die Datenbank an. Eine Tabelle kann nicht angepasst werden, vermutlich aufgrund der Menge an Daten. Die Tabelle wurde jetzt neu angelegt, die alte Tabelle liegt mir vor und ich möchte die Daten nachträglich einfügen.
Die alte Tabelle hat eine Spalte vom Typ TIMESTAMP und keinen Primary Key (nur Indexe). Die Spalte wird jetzt zum BIGINT mit IDENTITY(1,1) und Teil eines PK. Mein Plan jetzt:
1) Bereits in der neuen Tabelle entstandender Inhalt in eine weitere Temp-Tabelle schreiben und in original Tabelle löschen.#
2) SET IDENTITY_INSERT tabelle ON
Was passiert denn, wenn ich jetzt Werte niedriger als der vormals höchste IDENTITY-Wert in die Tabelle versuche einzufügen? Ich möchte gerne den TIMESTAMP zum BIGINT konvertierten und dabei wird das passieren.
3) Ursprünglichen Inhalt wieder zurück schreiben
4) SET IDENTITY_INSERT tabelle OFF
Müsste soweit gehen wenn ich das richtig verstehe. Mein problem sind die 110 Mio Datensätze, die mir etwas sorgen machen ;-)
Die alte Tabelle hat eine Spalte vom Typ TIMESTAMP und keinen Primary Key (nur Indexe). Die Spalte wird jetzt zum BIGINT mit IDENTITY(1,1) und Teil eines PK. Mein Plan jetzt:
1) Bereits in der neuen Tabelle entstandender Inhalt in eine weitere Temp-Tabelle schreiben und in original Tabelle löschen.#
2) SET IDENTITY_INSERT tabelle ON
SET IDENTITY_INSERT (Transact-SQL) - SQL Server
Transact-SQL-Referenz für die Anweisung SET IDENTITY_INSERT Bei Festlegung auf ON können explizite Werte in die Identitätsspalte einer Tabelle eingefügt werden.
learn.microsoft.com
3) Ursprünglichen Inhalt wieder zurück schreiben
4) SET IDENTITY_INSERT tabelle OFF
Müsste soweit gehen wenn ich das richtig verstehe. Mein problem sind die 110 Mio Datensätze, die mir etwas sorgen machen ;-)