Diese Prozedur ermöglicht es einer Anwendung, eine SQL-Anweisung auf einem Fremdserver auszuführen und die von dieser Anweisung
generierten Ergebnismengen abzurufen. Die SQL-Anweisung wird wortgetreu an den Fremdserver gesendet und daher muss SQL Anywhere
nicht in der Lage sein, die Anweisung syntaktisch zu analysieren.
Um diese Systemprozedur verwenden zu können, müssen Sie den Fremdserver mit der CREATE SERVER-Anweisung definieren.
Anders als bei der FORWARD TO-Anweisung kann sp_forward_to_remote_server innerhalb von Prozeduren verwendet werden. Jedoch
kann diese gespeicherte Prozedur nicht in der FROM-Klausel einer SELECT-Anweisung verwendet werden, da das Schema der entfernten
Ergebnismengen beliebig ist. Sie können entfernte Ergebnismengen abrufen, indem Sie einen Cursor für eine gespeicherte Prozedur
deklarieren, der in der sp_forward_to_remote_server-Prozedur aufgerufen wird.
Hinweis
Wenn die SQL-Anweisung mehrere Ergebnismengen zurückgibt, liefert die gespeicherte Prozedur sp_forward_to_remote_server jede
entfernte Ergebnismenge einzeln.
Es gibt keine lokalen Nebenwirkungen bei der Ausführung dieser gespeicherten Prozedur, aber da die SQL-Anweisung, die auf
dem Fremdserver ausgeführt wird, beliebig ist, können auf dem Fremdserver Nebenwirkungen auftreten.
Im folgenden Beispiel wird die gespeicherte Prozedur sp_forward_to_remote_server verwendet, um die Anzahl der Nicht-Systemtabellen
in einer entfernten SQL Anywhere 16-Datenbank namens RemoteSA zu ermitteln.
CALL sp_forward_to_remote_server( 'RemoteSA',
'SELECT COUNT(*) FROM sys.systable WHERE CREATOR NOT IN (0,3,6)' );
Im folgenden Beispiel wird die gespeicherte Prozedur sp_forward_to_remote_server verwendet, um die Spalten aus einer Excel-Tabellenkalkulation
namens newSalesData zu lesen.
call sp_forward_to_remote_server( 'RemoteExcel', 'SELECT * FROM newSalesData' );