SQL Abfrage über zwei Datenbanken

realYeti

Mitglied
Hy Leute - bin leider in SQL ned so fit, deshalb frag ich mal die Experten hier:

Ich brauche ein update einer Spalte von einer anderen Datenbank:

DB1_old - Tabelle - Feld -----> DB0 - Tabelle - Feld

Und dann bräuchte ich ne Möglichkeit ein diff zu erzeugen wenn des möglich ist, um die Felder zu selectieren die andere Einträge haben.

Datenbank ist SQLServer 2005

Danke für die Hilfe

Yeti :D
 
Du kannst nicht ohne weiteres Abfragen ueber mehrere Datenbanken hinaus machen, das macht ja eigentlich auch keinen Sinn. Wenn die Daten etwas mit einander zu tun haben, gehoeren die auch in eine Datenbank. Ich denke du wirst da mit reinem SQL nicht weiter kommen, auch wenn ich nicht so der Experte mit (MS?)SQL 2005 bin.

Greetz
Sinac
 
Hallo realYeti,

Joins über mehrere Tabellen in unterschiedlichen DBs sind - so weiß ich zumindest für Mysql - möglich. Ein entsprechender Post hier im Forum erklärt wie. Entscheidend ist, dass Du für beide DBs entsprechende Rechte hast.

Mit hilfe eines Joins über zwei Tabellen kannst Du dann auch Dein Update machen.

SQL:
UPDATE a join b ON a.spalte=b.spalte SET a.spalte=b.spalte

Je nach gewünschtem Update solltest Du das Join natürlich ändern und die SET Klausel überarbeiten. Aber prinzipiell gehts.

[EDIT]
Vielleicht noch wichtig:
Die Spalten, die Du ändern möchtest müssen nicht die Spalten sein, über die Du joinst, das können auch ganz andere sein.
[/EDIT]

Viele Grüße
jrook
 
Zuletzt bearbeitet von einem Moderator:
Hallo

im M$ SQL Server kannst Du auch über mehrere Datenbanken solche Joins machen.
Folgende kleine Anleitung sollte helfen:

Ausgangslage SERVER A mit DB1 und SERVER B mit DB 2.

Code:
SELECT * FROM [SERVERB].[DB2].dbo.Tabelle WHERE 1=1
  • Sollte das geklappt haben steht einem für UPDATE, INSERT etc nichts mehr im Weg

Achtung
Diese Linked Server Verbindung ist nicht immer die schnellste!
 
Danke für den Tip - funktioniert beides. Bin leider etwas im Stress wegen der Prüfung, aber sobald ich durch bin, poste ich mal die gesamten SQL Befehle.

SO long

Yeti :D
 

Neue Beiträge

Zurück