Rigenerazione di procedure transazionali personalizzate per riflettere le modifiche dello schema
Per impostazione predefinita, la replica transazionale apporta tutte le modifiche di dati nei Sottoscrittori tramite stored procedure generate mediante procedure interne per ogni articolo di tabella nella pubblicazione. Le tre procedure, rispettivamente per inserimenti, aggiornamenti ed eliminazioni, vengono copiate nel Sottoscrittore ed eseguite in caso di replica di un inserimento, un aggiornamento o un'eliminazione nel Sottoscrittore. Quando viene apportata una modifica dello schema a una tabella in un server di pubblicazione di SQL Server, la replica rigenera automaticamente queste procedure chiamando lo stesso set di procedure di scripting interno in modo che le nuove procedure corrispondano al nuovo schema (la replica delle modifiche dello schema non è supportata per i server di pubblicazione Oracle).
È inoltre possibile specificare procedure personalizzate per sostituire una o più procedure predefinite. Le procedure personalizzate vanno modificate in caso di modifica dello schema che influisce sulla procedura. Ad esempio, se una procedura fa riferimento a una colonna eliminata con una modifica dello schema, occorre rimuovere i riferimenti alla colonna dalla procedura. Per propagare una nuova procedura personalizzata ai Sottoscrittori con la replica sono disponibili due modi.
La prima opzione consiste nell'utilizzare una procedura di scripting personalizzata per sostituire le impostazioni predefinite utilizzate dalla replica:
Quando si esegue sp_addarticle (Transact-SQL), assicurarsi che il @schema_option bit 0x02 sia true.
Eseguire sp_register_custom_scripting (Transact-SQL) e specificare un valore di 'insert', 'update' o 'delete' per il parametro @type e il nome della routine di scripting personalizzata per il parametro @value.
Alla successiva modifica dello schema, la replica chiama questa stored procedure per inserire nello script la definizione per la nuova stored procedure personalizzata definita dall'utente e quindi propaga la procedura a ogni Sottoscrittore.
La seconda opzione consiste nell'utilizzare uno script contenente una nuova definizione di procedura personalizzata:
Quando si esegue sp_addarticle (Transact-SQL), impostare il @schema_option bit 0x02 bit su false in modo che la replica non generi automaticamente procedure personalizzate nel Sottoscrittore.
Prima di ogni modifica dello schema, creare un nuovo file di script e registrare lo script con la replica eseguendo sp_register_custom_scripting (Transact-SQL). Specificare un valore "custom_script" per il parametro @type e il percorso dello script nel server di pubblicazione per il parametro @value.
Alla successiva modifica significativa dello schema, questo script viene eseguito in ogni Sottoscrittore all'interno della stessa transazione del comando DDL. Dopo che è stata apportata la modifica dello schema, la registrazione dello script viene annullata. Per consentire l'esecuzione dello script dopo una successiva modifica dello schema, è necessario registrarlo nuovamente.
Vedere anche
Specificare la modalità di propagazione delle modifiche per gli articoli transazionali
Apportare modifiche allo schema nei database di pubblicazione