Verwenden Sie diese gespeicherte Prozedur, um ein SQL-Skript auszuführen, mit dem Sie Ihr Schema aktualisieren.
Name | Wert | Beschreibung |
---|---|---|
publication_n (in) |
Publikation |
Nicht mehr empfohlen. Verwenden Sie stattdessen subscription_n. Die synchronisierten Publikationen, wobei n eine Ganzzahl ist. Es gibt einen publication_n-Eintrag für jede synchronisierte Publikation. Die Nummerierung von n beginnt bei Null. |
MobiLink user (in) |
MobiLink-Benutzername |
Der MobiLink-Benutzer, für den Sie synchronisieren |
script version (in) |
Skriptversionsname |
Die Version des für die Synchronisation verwendeten Skripts. |
drop hook (out) |
never | always | on success |
Die Werte können sein: never - (Standard) sp_hook_dbmlsync_schema_upgrade-Hook nicht aus der Datenbank löschen always - Nach dem Versuch, den Hook auszuführen, sp_hook_dbmlsync_schema_upgrade-Hook aus der Datenbank löschen on success - Wenn der Hook erfolgreich abläuft, sp_hook_dbmlsync_schema_upgrade-Hook aus der Datenbank löschen. "On success" ist mit "always" identisch, wenn die dbmlsync-Option -eh verwendet wird, die erweiterte dbmlsync-Option IgnoreHookErrors auf TRUE gesetzt ist oder die IgnoreHookErrors-Synchronisationsprofiloption auf "on" gesetzt ist. |
subscription_n (in) | Subskriptionsname(n) | Die synchronisierten Subskriptionen, wobei n eine Ganzzahl ist. Dies ist ein subscription_n-Eintrag für jede synchronisierte Subskription. Die Nummerierung von n beginnt bei Null. |
Dieser Hook wird in erster Linie für die Rückwärtskompatibilität bereitgestellt. Außer wenn Sie die erweiterte ScriptVersion-Option verwenden, können Sie Schemaänderungen problemlos ohne diesen Hook durchführen, indem Sie die START SYNCHRONIZATION SCHEMA CHANGE-Anweisung verwenden. Siehe START SYNCHRONIZATION SCHEMA CHANGE-Anweisung [MobiLink].
Wenn dieser Hook implementiert ist, sperrt dbmlsync standardmäßig die zu synchronisierenden Tabellen.
Diese gespeicherte Prozedur wird verwendet, um das Deployment von Schemaänderungen in verteilten entfernten Datenbanken durchzuführen. Wenn Sie diesen Hook für Schemaänderungen verwenden, stellen Sie sicher, dass alle Änderungen in den entfernten Datenbanken synchronisiert sind, bevor die Änderung des Schemas erfolgt. Damit wird gewährleistet, dass die Datenbanken auch danach noch synchronisiert werden können. Wenn dieser Hook verwendet wird, dürfen Sie die erweiterte dbmlsync-Option LockTables nicht auf "off" setzen.
Während einer Synchronisation, bei der der Upload erfolgreich übernommen und von MobiLink bestätigt wurde, wird dieser Hook nach sp_hook_dbmlsync_download_end und vor sp_hook_dbmlsync_end aufgerufen. Dieser Hook wird nicht während einer reinen Download-Synchronisation aufgerufen oder wenn ein dateibasierter Download erstellt bzw. übernommen wird.
Die in diesem Hook durchgeführten Änderungen werden sofort nach seinem Abschluss festgeschrieben. Festschreiben oder Zurücksetzen können in diesem Hook sicher durchgeführt werden.
Das folgende Beispiel verwendet die sp_hook_dbmlsync_schema_upgrade-Prozedur, um eine Spalte in die Dealer-Tabelle in der entfernten Datenbank hinzuzufügen. Wenn das Upgrade erfolgreich ist, wird der sp_hook_dbmlsync_schema_upgrade-Hook gelöscht.
CREATE PROCEDURE sp_hook_dbmlsync_schema_upgrade() BEGIN -- Upgrade the schema of the Dealer table. Add a column: ALTER TABLE Dealer ADD dealer_description VARCHAR(128); -- Change the script version used to synchronize ALTER SYNCHRONIZATION SUBSCRIPTION sub1 SET SCRIPT VERSION='v2'; -- If the schema upgrade is successful, drop this hook: UPDATE #hook_dict SET value = 'on success' WHERE name = 'drop hook'; END; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |