Laden...

Tabelle von DB1 in Tabelle von DB2 übertragen (unterschiedliche Rechner/SQL Instanzen)

Erstellt von Trekki1990 vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.279 Views
Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 13 Jahren
Tabelle von DB1 in Tabelle von DB2 übertragen (unterschiedliche Rechner/SQL Instanzen)

verwendetes Datenbanksystem: <MS SQL>

Hallo!

Ich habe eine SQL-Server Instanz (befindet sich auf dem Server) in der sich eine Datenbank-1 befindet, in der sich wiederum eine Tabelle-1 befindet. Dann habe ich eine SQL-Server Instanz (lokal auf meinem Client) in der sich eine Datenbank-2 befindet, in der sich wiederum eine Tabelle-2 befindet. Die Tabellen haben eine unterschiedlich Anzahl von Spalten.
Wäre es möglich nur bestimmte Spalten aus DB1/Tabelle1 nach DB2/Tabelle2 zu kopieren, ohne dass ich erst Tabelle 1 sichern muss, um sie dann komplett in meiner DB2 wiederherzustellen und um dann aus der Tabelle1 in meine Tabelle2 kopieren?

Danke schonmal für eure Antworten!
Gruß Trekki

H
208 Beiträge seit 2008
vor 13 Jahren

Wie Du prinzipiell Spalten von einer Tabelle in die andere überträgst, weißt Du wahrscheinlich:

INSERT INTO Tabelle2 (Spalte2) SELECT Spalte1 FROM Tabelle1

Wenn die Tabellen in verschiedenen Datenbanken liegen braucht man noch DB-Name und Schema:

INSERT INTO DB2.dbo.Tabelle2 (Spalte2) SELECT Spalte1 FROM DB1.dbo.Tabelle1

...und wenn die Datenbanken auch noch auf verschiedenen Servern liegen, dann braucht man auch noch den Servernamen:

INSERT INTO Server2.DB2.dbo.Tabelle2 (Spalte2) SELECT Spalte1 FROM Server1.DB1.dbo.Tabelle1

Damit das serverübergreifend funktioniert, mußt Du aber auf dem einen Server den anderen als **Verbindungsserver **definieren (per SQL oder im Management Studio).

Wenn Du die Abfrage direkt auf der einen DB ausführst, dann kannst Du natürlich für die das "Rechnername.DbName.dbo." weglassen.

Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 13 Jahren

Danke haarrrgh für deine schnelle Antwort!
Wollte jetzt nach deinem Schema vorgehen. Jedoch findet er die Servernamen nicht, besser gesagt er unterstreicht sie rot.
Meine Instanz 1 heißt MW-PC\SQLEXPRESS.
Muss ich das in Anführungszeichen setzen?

H
208 Beiträge seit 2008
vor 13 Jahren

Der Bindestrich im Namen Deines Servers ist ein reserviertes Zeichen, deshalb mußt Du den ganzen Servernamen schonmal in eckige Klammern [ ] setzen.

Aber bei Instanzen bin ich mir nicht so sicher, habe hier keine im Einsatz.
Ich vermute daß da auch einfach die eckigen Klammern reichen, aber ich kann es hier nicht ausprobieren.