Server dynamisch auswählen

22/04/2008 - 08:09 von Achim Ehlers | Report spam
Hallo Ng,

in einer Anwendung sollen diverse Proceduren ausgeführt werden die auf einem
remote Rechner Abfragen durchführen.
In einer Tabelle auf einem fixen Server in einer fixen Datenbank steht
jeweils der Servername und die Datenbank,
auf der die Proceduren abfragen sollen.

Gibt es eine Möglicheit àhnlich wie
use Datenbank
auch einen Server auszuwàhlen?
(use [server].[datenbank] geht leider nicht)
damit zu Beginn jeder Procedure die jeweils relevante
Server-Datenbank-Kombination auswàhlt werden kann,
oder muß ich alle meine Abfragen dynamisch erstellen?


Vielen Dank für eure Tipps

Gruß
Achim
 

Lesen sie die antworten

#1 Elmar Boye
22/04/2008 - 09:26 | Warnen spam
Hallo Achim,

Achim Ehlers schrieb:
in einer Anwendung sollen diverse Proceduren ausgeführt werden
die auf einem remote Rechner Abfragen durchführen.
In einer Tabelle auf einem fixen Server in einer fixen Datenbank
steht jeweils der Servername und die Datenbank,
auf der die Proceduren abfragen sollen.

Gibt es eine Möglicheit àhnlich wie
use Datenbank
auch einen Server auszuwàhlen?
(use [server].[datenbank] geht leider nicht)



Nein. USE gilt immer nur für eine Verbindung - und die
besteht fix mit dem jeweiligen Server. Ein anderer Server
benötigt ggf. zusàtzliche Anmeldeinformationen.

Allerdings können Prozeduren direkt über einen Verbindungsserver
angesprochen werden, die vierteilige Syntax gilt auch dort, also:
EXEC ServerName.Datenbank.Schema.Prozedurname Parameterliste
wobei Execute eine Prozedurvariablen unterstützt:
<URL:http://msdn2.microsoft.com/de-de/li...2.aspx>

Alternativ geht es ebenso über sp_executesql.
Der Verbindungsaufbau erfolgt jeweils mit den für den
Verbindungsserver festgelegten Kontoinformationen.

damit zu Beginn jeder Procedure die jeweils relevante
Server-Datenbank-Kombination auswàhlt werden kann,
oder muß ich alle meine Abfragen dynamisch erstellen?



Wobei es beim Zugriff über eine Client Anwendung effizienter
sein kann, zum jeweiligen Server eine Verbindung aufzubauen,
als die Verbindung jeweils über einen Verbindungsserver aufzubauen.
Das gilt insbesondere bei Prozeduren, die Ergebnisse zurückgeben.
Denn in dem Fall wandern die Daten ggf. mehrmalig übers Netz.

Einziger Vorteil des Verbindungsservers wàre eine zentrale
Server/Kontenverwaltung, was aber bei integrierter Sicherheit
ebenso übers Active Directory erfolgen kann.

Gruß Elmar

Ähnliche fragen