Problem:
Wie können Sie mit einer einzigen Abfrage effizient Daten aus mehreren SQL Server-Datenbanken abrufen, die sich auf verschiedenen Servern befinden?
Lösung:
Nutzen Sie die Verbindungsserver-Funktionalität von SQL Server. Dadurch können Sie eine Verbindung zu Remote-Servern herstellen und auf deren Datenbanken zugreifen, als wären diese lokal. So geht's:
Ansatz 1: Verwendung von SQL Server Management Studio (SSMS)
Ansatz 2: Verwendung der sp_addlinkedserver
gespeicherten Prozedur
Führen Sie die folgende gespeicherte Prozedur aus und ersetzen Sie Platzhalter durch Ihre tatsächlichen Werte:
<code class="language-sql">EXEC sp_addlinkedserver @server_name = N'YourLinkedServerName', @srvproduct = N'SQL Server', @provider_name = N'SQLNCLI', @data_source = N'YourServerAddress'</code>
Nach erfolgreicher Einrichtung des Verbindungsservers können Sie Daten serverübergreifend abfragen:
<code class="language-sql">SELECT * FROM YourLocalTable INNER JOIN [YourLinkedServerName].[YourLinkedDatabase].[YourSchema].[YourRemoteTable] ON YourLocalTable.ID = YourRemoteTable.ID;</code>
Wichtige Überlegung: Denken Sie daran, YourLinkedServerName
, YourLinkedDatabase
, YourSchema
, YourLocalTable
und YourRemoteTable
durch Ihren spezifischen Servernamen, Datenbanknamen, Schemanamen und Tabellennamen zu ersetzen . Das Schema weicht möglicherweise von „dbo“ ab. Überprüfen Sie daher den korrekten Schemanamen für Ihre Remote-Tabelle. Die Verwendung einer geeigneten JOIN
-Klausel (wie INNER JOIN
oben gezeigt) ist für einen effizienten Datenabruf von entscheidender Bedeutung.
Das obige ist der detaillierte Inhalt vonWie rufe ich mit SQL Server Daten von mehreren Servern ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!