Heim >Datenbank >MySQL-Tutorial >Wie kann ich Tabellen datenbankübergreifend auf verschiedenen Servern verknüpfen?

Wie kann ich Tabellen datenbankübergreifend auf verschiedenen Servern verknüpfen?

DDD
DDDOriginal
2025-01-13 09:51:42188Durchsuche

How Can I Join Tables Across Databases on Different Servers?

Verbinden Sie Tabellen über verschiedene Serverdatenbanken hinweg

Die Integration von Daten aus verschiedenen Serverdatenbanken bietet die Möglichkeit, umfassende Abfragen durchzuführen. Dazu können Sie folgende Strategien in Betracht ziehen:

Verwenden Sie sp_addlinkedserver

Verwenden Sie sp_addlinkedserver, um eine Serververbindung zu erstellen, um eine Verbindung zwischen zwei Datenbanken herzustellen. Informationen zur Verwendung finden Sie in der entsprechenden Dokumentation. Sobald die Verknüpfung hergestellt ist, können Sie die Abfrage wie gewohnt erstellen, indem Sie dem Datenbanknamen den Namen des verknüpften Servers voranstellen, etwa so:

<code class="language-sql">SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID</code>

OPENQUERY VERWENDEN

OPENQUERY ermöglicht es Ihnen, SQL-Anweisungen auf einem Remote-Server auszuführen und nur die erforderlichen Daten abzurufen. Dieser Ansatz verbessert die Geschwindigkeit und ermöglicht dem Remote-Server die Optimierung von Abfragen. Das Zwischenspeichern von Daten in einer temporären Tabelle in der lokalen Datenbank kann nachfolgende Abfragen erleichtern, ähnlich wie beim Herstellen einer Verbindung zu einer Standardtabelle.

Zum Beispiel:

<code class="language-sql">SELECT *
INTO #myTempTable
FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]')
SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID</code>

Weitere Beispiele finden Sie in der Dokumentation von OPENQUERY. Während das hier bereitgestellte Beispiel einfacher ist, ist der erste Ansatz mit sp_addlinkedserver möglicherweise besser geeignet. Wenn jedoch das Filtern von Daten erforderlich ist, kann OPENQUERY die Leistung verbessern.

Das obige ist der detaillierte Inhalt vonWie kann ich Tabellen datenbankübergreifend auf verschiedenen Servern verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn