Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL-Abfrage auf mehreren Datenbanken

Ich denke, das Duplikatproblem besteht nicht darin, die beiden Datenbanken beizutreten, sondern in erster Linie bei Ihrer Verbindung. Ich denke, Sie benötigen möglicherweise einen INNER- oder OUTER-Join, um die Verknüpfung zu handhaben. Die Syntax zum Abrufen von Daten aus zwei verschiedenen Datenbanken ist ziemlich einfach. Sie fügen einfach den Servernamen, den Datenbanknamen, den Eigentümernamen und den Tabellennamen hinzu.

Zum Beispiel:

SELECT firstdb.*, seconddb.*
FROM Server1.Database1.dbo.myTable AS firstdb
INNER JOIN Server2.Database2.dbo.myTable AS seconddb
   ON firstdb.id = seconddb.id

In Ihrem Beispiel klingt es so, als würden Sie den Link zum Laufen bringen, aber Sie haben ein Join-Problem im Feld repair_ord. Obwohl ich Ihr Schema nicht kenne, würde ich vermuten, dass dieser Link ein INNER JOIN sein sollte. Wenn Sie einfach beide Tabellen in die FROM-Anweisung einfügen und Ihre WHERE-Anweisung nicht richtig ausführen, werden Sie Probleme bekommen, wie Sie sie beschreiben.

Ich würde vorschlagen, dass Sie dieses Setup vereinfachen und in eine Testumgebung (auf einer DB) stellen. Probieren Sie den Vier-Tisch-Join aus, bis Sie es richtig hinbekommen. Fügen Sie dann die Komplexität von Multi-Datenbank-Aufrufen hinzu.