Der Passthrough-Modus wird mit der PASSTHROUGH-Anweisung und der PASSTHROUGH STOP-Anweisung gestartet. Eine Passthrough-Sitzung bezieht sich auf die Anweisungen, die zwischen den PASSTHROUGH-Anweisungen eingegeben werden. Für Anweisungen, die in eine Passthrough-Sitzung eingegeben werden, gilt Folgendes:
Sie werden auf Syntaxfehler überprüft.
Sie werden in der konsolidierten Datenbank ausgeführt, außer Sie geben das ONLY-Schlüsselwort an. Wenn ONLY angegeben ist, werden die Anweisungen an die entfernte Datenbank gesendet, ohne in der konsolidierten Datenbank ausgeführt zu werden.
Die folgende Anweisung startet eine Passthrough-Sitzung, die die Anweisungen an eine Liste von zwei benannten Subskribenten übermittelt, ohne in der aktuellen Datenbank ausgeführt zu werden.
PASSTHROUGH ONLY FOR userid_1, userid_2; |
Sie werden an die gekennzeichnete Subskribenten-Datenbank übermittelt. Passthrough-Anweisungen werden in der gleichen Sequenz wie normale Replikatnachrichten in der Reihenfolge repliziert, in der die Anweisungen im Transaktionslog aufgezeichnet sind.
Sie werden in der Subskribenten-Datenbank ausgeführt.
Die folgende Anweisung startet eine Passthrough-Sitzung, die die Anweisungen an alle Benutzer übermittelt, die für die pubname-Publikation subskribiert sind.
PASSTHROUGH ONLY FOR SUBSCRIPTION TO [owner].pubname Anweisung1; |
Der Passthrough-Modus ist additiv. Im folgenden Beispiel wird Anweisung_1 an user_1 und Anweisung_2 sowohl an user_1 als auch an user_2 gesendet.
PASSTHROUGH ONLY FOR user_1 ; Anweisung_1; PASSTHROUGH ONLY FOR user_2 ; Anweisung_2; |
Die folgende Anweisung stoppt eine Passthrough-Sitzung für alle entfernten Benutzer:
PASSTHROUGH STOP; |
Der Passthrough-Modus wird üblicherweise verwendet, um Datenänderungsanweisungen zu versenden. In diesem Fall verwenden DML-Anweisungen das before-Schema vor dem Passthrough und das after-Schema nach dem Passthrough.
Das folgende Beispiel löscht eine Tabelle in der entfernten Datenbank und in der konsolidierten Datenbank.
-- Drop a table on the remote database -- and at the consolidated database PASSTHROUGH TO Joe_Remote; DROP TABLE CrucialData; PASSTHROUGH STOP; |
Das folgende Beispiel löscht eine Tabelle nur in der entfernten Datenbank.
-- Drop a table on the remote database only PASSTHROUGH ONLY TO Joe_Remote; DROP TABLE CrucialData; PASSTHROUGH STOP; |
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 |