Donnerstag, 30. Juni 2011

Microsoft SQL-Server Verbindungsserver einrichten

Mit folgendem, simplen SQL-Statement würde man Daten der Tabelle "Maschinen" aus der Datenbank "FlorianTestDB" von einem Server "Testserver2" auf einen anderen Server "Testserver1" in die gleichnamige Datenbank/Tabelle kopieren.

INSERT INTO [Testserver1].[FlorianTestDB].[dbo].[Maschinen]
SELECT * FROM [Testserver2].[FlorianTestDB].[dbo].[Maschinen]
GO

Voraussetzung für eine erfolgreiche Übertragung ist, dass der Zielserver als sogenannter Verbindungsserver auf dem Quellserver eingerichtet ist. Ist dieses nicht der Fall, so kommt folgende Meldung.

Meldung 7202, Ebene 11, Status 2, Zeile 1
Server 'Testserver1' konnte in 'sys.servers' nicht gefunden werden. Stellen Sie sicher, dass der richtige Servername angegeben wurde. Führen Sie ggf. die gespeicherte Prozedur 'sp_addlinkedserver' aus, um den Server in 'sys.servers' hinzuzufügen.

Abhilfe schafft man, indem man den Verbindungsserver auf einfache Art und Weise  anlegt. Hierzu muss man eine Verbindung mit dem Quellserver herstellen und folgenden Befehl ausführen, um den Zielserver als Verbindungsserver einzurichten.

EXEC sp_addlinkedserver 'Testserver1'
GO

Als Ergebnis sollte folgendes zurückkommen.

Befehl(e) wurde(n) erfolgreich abgeschlossen.

Führt man das SQL-Statement zum Kopieren der Daten nun erneut aus, so sollte es erfolgreich ausgeführt werden.

Eine kleine Einschränkung hierbei gibt es jedoch. Fügt man den Verbindungsserver wie oben beschrieben hinzu, so ist es notwendig, dass auf beiden Servern der aktuell verwendete Benutzer identisch eingerichtet ist.

Möchte man dieses nicht, benutzt unterschiedliche Passwörter oder verschiedene Benutzer, so ist es am einfachsten den Verbindungsserver über das SQL-Server-Management-Studio anzulegen.

Diese Vorgehensweise geht für die SQL-Server-Versionen 2000, 2005 und 2008

Keine Kommentare:

Kommentar veröffentlichen