In der folgenden Abbildung werden Proxytabellen auf einem lokalen Datenbankserver gezeigt, die den entfernten Tabellen "Employees" und "Departments" der SQL Anywhere-Beispieldatenbank auf dem Fremdserver "RemoteSA" zugeordnet wurden.
Sie können Joins zwischen Tabellen in unterschiedlichen SQL Anywhere-Datenbanken benutzen. Im folgenden, einfachen Beispiel wird zur Verdeutlichung des Prinzips nur eine Datenbank benutzt.
Erstellen Sie eine neue Datenbank namens empty.db.
Diese Datenbank enthält keine Daten. Sie wird lediglich benutzt, um die entfernten Objekte zu definieren und um auf die SQL Anywhere-Beispieldatenbank zuzugreifen.
Starten Sie den Datenbankserver, der auf dem empty.db ausgeführt wird. Sie können dies mit der folgenden Befehlszeile durchführen:
dbeng11 empty |
Stellen Sie in Interactive SQL als DBA-Benutzer eine Verbindung zu empty.db her.
Erstellen Sie in der neuen Datenbank einen Fremdserver namens "RemoteSA". Dessen Serverklasse ist "saodbc", und die Verbindungszeichenfolge bezieht sich auf die DSN SQL Anywhere 11 Demo:
CREATE SERVER RemoteSA CLASS 'saodbc' USING 'SQL Anywhere 11 Demo'; |
In diesem Beispiel wird in der entfernten Datenbank dieselbe Benutzer-ID und das gleiche Kennwort wie in der lokalen Datenbank verwendet, sodass keine externen Logins erforderlich sind.
In einigen Fällen müssen Sie eine Benutzer-ID und ein Kennwort angeben, wenn Sie eine Verbindung zur Datenbank auf dem Fremdserver herstellen. In der neuen Datenbank können Sie ein externes Login zum Fremdserver erstellen. Um das Beispiel zu vereinfachen, wird DBA hier sowohl als lokaler Loginname als auch als ID des Benutzers auf dem Fremdserver benutzt:
CREATE EXTERNLOGIN DBA TO RemoteSA REMOTE LOGIN DBA IDENTIFIED BY sql; |
Definieren Sie die Proxytabelle "p_Employees":
CREATE EXISTING TABLE p_Employees AT 'RemoteSA..GROUPO.Employees'; |
Definieren Sie die Proxytabelle "p_Departments":
CREATE EXISTING TABLE p_Departments AT 'RemoteSA..GROUPO.Departments'; |
Benutzen Sie die Proxytabellen in der SELECT-Anweisung, um den Join auszuführen.
SELECT GivenName, Surname, DepartmentName FROM p_Employees JOIN p_Departments ON p_Employees.DepartmentID = p_Departments.DepartmentID ORDER BY Surname; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |