73D.45 Linked Server (Vorjahresdatenbanken)
Für den Zugriff auf die Vorjahresdatenbanken wird innerhalb der betroffenen Abfragen jeweils ein Verweis auf die Sektion [LinkedServer] der INI-Datei verwendet. Hier kann mit den Schlüsseln „LetztesJahr“ und „VorletztesJahr“ hinterlegt werden, wie die Namen der Vorjahresdatenbanken sind und auf welchen Servern sie ggf. liegen.
|
[LinkedServer]
LetztesJahr=LinkedServerName.DatabaseName
VorletztesJahr=LinkedServerName.DatabaseName
|
LinkedServerName
Name des verbundenen SQL-Servers, wenn die Vorjahresdatenbanken nicht auf dem aktuellen SQL-Server liegen.
Ansonsten kann diese Angabe (inklusive dem angehängten „.“) entfallen. Informationen zum Einrichten eines verbundenen Servers siehe unten.
DatabaseName
Datenbankname der jeweiligen Vorjahresdatenbank.
Sind alle Daten der Vorjahre in der aktuellen SQL Datenbank enthalten, muss lediglich der aktuelle Datenbankname eingetragen werden.
Beispiel
|
[LinkedServer]
LetztesJahr=INFRA_ECHT
VorletztesJahr=INFRA_ECHT
|
Einrichtung eines verbundenen Servers (Linked Server)
Linked Server (Verbundene Server) ist ein Feature vom Microsoft SQL Server, um innerhalb einer Abfrage ad-hoc auf Datenbanken eines anderen SQL-Servers zuzugreifen und Daten mehrerer SQL Server miteinander kombinieren zu können. Für die Einrichtung einer Verbindung zu einem anderen SQL Server existieren zwei Stored Procedures:
|
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
|
|
sp_addlinkedsrvlogin [ @rmtsrvname= ] 'rmtsrvname'
[ , [ @useself= ] 'TRUE' | 'FALSE' | 'NULL']
[ , [ @locallogin= ] 'locallogin' ]
[ , [ @rmtuser= ] 'rmtuser' ]
[ , [ @rmtpassword= ] 'rmtpassword' ]
|
Per sp_addlinkedserver wird der “fremde” SQL Server dem aktuellen Server bekannt gemacht. Wichtig ist dabei besonders der mit „@server=‘MeinName‘“ angegebene Alias, mit dem der „fremde“ Server zukünftig im Kontext des aktuellen Servers angesprochen werden kann.
Die Procedure „sp_addlinkedsrvlogin“ ist notwendig, wenn auf dem „fremden“ Server mit anderen Benutzerkonten und/oder Rechten gearbeitet werden muss.
Näheres zu den beiden Procedures entnehmen Sie bitte der Microsoft SQL Server Dokumentation.
Einfaches Beispiel für die Verbindung eines Servers:
|
sp_addlinkedserver @server='infraBackup',@srvproduct='',@provider='SQLNCLI',@datasrc='ks-quad\sql2008',@provstr='Integrated Security=SSPI;Persist Security Info=False'
|
