Esecuzione di script durante la sincronizzazione (programmazione Transact-SQL della replica)Execute Scripts During Synchronization (Replication Transact-SQL Programming)

La replica supporta l'esecuzione di script su richiesta per i Sottoscrittori di pubblicazioni transazionali e di tipo merge.Replication supports on demand script execution for Subscribers to transactional and merge publications. Con questa funzionalità lo script viene copiato nella directory di lavoro della replica e quindi viene applicato al Sottoscrittore tramite sqlcmd .This functionality copies the script to the replication working directory and then uses sqlcmd to apply the script at the Subscriber. Per impostazione predefinita, se si verifica un errore durante l'applicazione dello script per una sottoscrizione di una pubblicazione transazionale, l'agente di distribuzione verrà arrestato.By default, if there is a failure when applying the script for a subscription to a transactional publication, the Distribution Agent will stop. È possibile specificare uno script Transact-SQLTransact-SQL da eseguire a livello di programmazione tramite le stored procedure di replica.You can specify a Transact-SQLTransact-SQL script to execute programmatically using replication stored procedures.

Per specificare uno script da eseguire per tutti i Sottoscrittori di una pubblicazione snapshot, transazionale o di tipo mergeTo specify a script to run for all Subscribers to a snapshot, transactional or merge publication

  1. Comporre e testare lo script Transact-SQLTransact-SQL che verrà eseguito su richiesta.Compose and test the Transact-SQLTransact-SQL script that will be executed on demand.

  2. Salvare il file script in un percorso in cui sia accessibile all'agente snapshot per la pubblicazione.Save the script file to a location where it can be accessed by the Snapshot Agent for the publication.

  3. Nel database di pubblicazione del server di pubblicazione eseguire sp_addscriptexec (Transact-SQL).At the Publisher on the publication database, execute sp_addscriptexec (Transact-SQL). Specificare @publication, il nome del file script con il percorso UNC completo creato nel passaggio 2 per @scriptfilee uno dei valori seguenti per @skiperror:Specify @publication, the name of the script file with full UNC path created in step 2 for @scriptfile, and one of the following values for @skiperror:

    • 0 : l'agente arresterà l'esecuzione dello script se viene rilevato un errore.0 - the agent will stop executing the script if an error is encountered.

    • 1 : l'agente registrerà gli errori e continuerà l'esecuzione dello script quando vengono rilevati errori.1 - the agent will log errors and continue executing the script when errors are encountered.

  4. Lo script specificato verrà eseguito in ogni Sottoscrittore la volta successiva che l'agente verrà eseguito per sincronizzare la sottoscrizione.The specified script will be executed at each Subscriber when the agent next runs to synchronize the subscription.

Vedere ancheSee Also

Sincronizzare i datiSynchronize Data