Moin,
ich muss aus einer Datenbank A bestimmte Daten in eine Datenbank B migrieren. Die Struktur von B ist ähnlich der von A, aber stimmt nicht ganz überein, sodas ich nur ausgewählte Spalten einer Taballe von A migrieren möchte.
Unterstützt der Befehl INSERT INTO so etwas? Könnte ich das etwa so in realisieren:
INSERT INTO A.Tabelle (id, name)
SELECT id, name
FROM B.Tabelle
Würde mich auch sonst über andere Vorschläge freuen.
Gruß
caprifischer
Hallo,
das was du suchst ist wahrscheinlich das SELECT INTO INTO-Klausel (Transact-SQL)
Damit kannst du die Daten von einer Tabelle in eine Andere schreiben und vieles mehr
Gruß
Michael
Hallo caprifischer,
welche Datenbank(en) hast du? Beim SQL Server gehts mit INSERT und da kann der "vollqualifizierte" Name angegeben werden - kein Problem.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Sorry vergessen anzugeben...
MS SQl2008R2 wird genutzt. OK, dann wäre das also ein Option für mich, besten Dank.
Hallo caprifisher
Wenn's dir darum geht die Daten mit einem Statement in beide Tabellen zu schreiben kannst du die OUTPUT Klausel verwenden:
DECLARE @A TABLE (Foo INT, Bar VARCHAR(10), Blubber DATETIME2);
DECLARE @B TABLE (Foo INT, Bar VARCHAR(10));
INSERT INTO @A
OUTPUT
inserted.Foo
,inserted.Bar
INTO @B
VALUES (1, 'a', SYSDATETIME());
SELECT * FROM @A;
SELECT * FROM @B;
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.