MSSQL Tabellen verschmelzen

GerJoHo

Grünschnabel
Moin, Moin,

ich habe ein riesiges Problem .... und nirgends eine Lösung.

System : MSSQL 2005
Problem : Zwei Tabellen sollen verschmolzen werden
Elemente sind flexibel, d.h., direkte Spaltenaddressierung klappt nicht, aber die beiden Tabellen sind vom Aufbau komplett identisch - aber die Identitäten können überlappen, wobei eine Tabelle ihre Identitäten behalten muss, während die zweite angepasst werden darf.

Tja, mein intuitiver Versuch war :

INSERT INTO OldItems
SELECT *
FROM NewItems

(sind zwar noch ein paar Befehle mehr, aber dieser Dreizeiler verursacht schon den Fehler)

Fehlermeldung : Ein expliziter Wert für die Identitätsspalte in der 'Items'-Tabelle kann nur angegeben werden, wenn eine Spaltenliste verwendet wird und IDENTITY_INSERT auf ON festgelegt ist.

Sowas wie SET IDENTITY_INSERT Olditems ON hilft nichts, noch eine manuelle Erhöhung der ID in Newitems.

Ich habe schon ein paar Foren durchgewühlt - und fand mehrere die dieses Problem hatten, dann wurde herumgedoktort, aber ne Lösung habe ich bisher nicht gesehen; oder wißt Ihr eine ?

Gruesse,
 
INSERT INTO OldItems
SET olditems.spaltenname = newitems.spaltenname, olditems.spaltenname2 = newitems.spaltenname2 etc. etc.

Ein Insert Into geht doch nicht ohne SET meinte ich. So könnte es gehen.

Ansonsten mal mit einem IN(Select ...) probieren.

btw. Bin mir nicht sicher ob es klappt. Aber wäre für mich logisch wenn JA:D
 
Oops hab ich überlesen...

Hm... nicht einfach.... Versuch:

INSERT INTO OldItems
SET ON(SELECT *
FROM NewItems)

Bin noch am durchlesen was Flexible Elemente in der Datenbank sind. Aber bin immer noch der Meinung ohne SET wird er nichts machen... SET ON oder SET IN(select...)
 
Zurück