Eseguire gli script prima e dopo l'applicazione dello snapshotExecute Scripts Before and After the Snapshot Is Applied

È possibile specificare gli script da eseguire nel Sottoscrittore prima o dopo l'applicazione dello snapshot.You can specify scripts to execute at the Subscriber before or after the snapshot is applied. È possibile utilizzare script per diversi scopi, ad esempio per creare account di accesso e schemi (proprietari di oggetti) in ogni Sottoscrittore.Scripts can be used for a variety of reasons, such as creating logins and schemas (object owners) at each Subscriber.

Dopo avere specificato un percorso per ogni script, l'agente snapshot copia i file script nella cartella snapshot corrente ogni volta che viene eseguita l'elaborazione dello snapshot.You specify a file location for each script, and the Snapshot Agent copies the script files to the current snapshot folder each time snapshot processing occurs. Quando si applica uno snapshot, l'agente di distribuzione o l'agente di merge esegue lo script pre-snapshot prima di qualsiasi script degli oggetti replicati.The Distribution Agent or the Merge Agent runs the pre-snapshot script before any of the replicated object scripts when applying a snapshot. L'agente di distribuzione o l'agente di merge esegue lo script post-snapshot dopo l'applicazione di tutti gli altri script degli oggetti replicati e dei dati.The Distribution Agent or the Merge Agent runs the post-snapshot script after all the other replicated object scripts and data have been applied. Al termine dell'applicazione dello snapshot e dell'esecuzione corretta dei file script, gli script vengono rimossi dalla directory di lavoro del Sottoscrittore.After the snapshot application is complete and script files run successfully, the script files are removed from the working directory on the Subscriber.

Lo script viene eseguito avviando l'utilità sqlcmd .The script is run by launching the sqlcmd utility. Prima di distribuire uno script, eseguirlo con sqlcmd per verificarne la corretta esecuzione in base a quanto previsto.Before deploying a script, run it with sqlcmd to ensure it executes as expected. È necessario che il contenuto degli script eseguiti prima e dopo l'applicazione dello snapshot sia ripetibile.The contents of scripts that are executed before and after the snapshot is applied must be repeatable. Se, ad esempio, si crea una tabella nello script, è innanzitutto necessario verificarne l'esistenza e, in tal caso, eseguire le azioni appropriate.For example, if you create a table in the script, you should first check for its existence and take appropriate action if it exists. Lo script deve essere ripetibile perché, se è necessario reinizializzare una sottoscrizione per cui lo script è già stato applicato, lo script viene applicato nuovamente in corrispondenza dell'applicazione del nuovo snapshot in fase di reinizializzazione.The script must be repeatable because if you need to reinitialize a subscription for which the script has already been applied, the script will be applied again when the new snapshot is applied during reinitialization.

Se il file di snapshot viene compresso in formato MicrosoftMicrosoft CAB, vengono compressi e inclusi nel file CAB anche gli script.If you are compressing the snapshot file (by putting it in MicrosoftMicrosoft CAB file format), the scripts are also compressed and placed in the CAB file. Dopo il trasferimento e la decompressione del file di snapshot compresso in una directory di lavoro nel Sottoscrittore, vengono eseguiti tutti gli script indicati come pre-snapshot.After the compressed snapshot file is transferred to the Subscriber and decompressed to a working directory on the Subscriber, any script indicated as a pre-snapshot script is executed. In modo analogo, tutti gli script post-snapshot vengono decompressi ed eseguiti nel Sottoscrittore come ultimo passaggio dell'applicazione dello snapshot.Likewise, any post-snapshot script is decompressed and executed at the Subscriber as the last step in applying the snapshot.

Per eseguire gli script prima e dopo l'applicazione dello snapshotTo execute scripts before and after the snapshot is applied

Vedere ancheSee Also

Inizializzare una sottoscrizione con uno snapshot Initialize a Subscription with a Snapshot
Opzioni per gli snapshotSnapshot Options