Modifiche allo schema nei database di pubblicazioneMake Schema Changes on Publication Databases

La replica supporta una vasta gamma di modifiche dello schema negli oggetti pubblicati.Replication supports a wide range of schema changes to published objects. Quando si apporta una delle modifiche di schema seguenti nell'oggetto pubblicato appropriato in un server di pubblicazione MicrosoftMicrosoft SQL ServerSQL Server , la modifica viene propagata per impostazione predefinita a tutti i Sottoscrittori SQL ServerSQL Server :When you make any of the following schema changes on the appropriate published object at a MicrosoftMicrosoft SQL ServerSQL Server Publisher, that change is propagated by default to all SQL ServerSQL Server Subscribers:

  • ALTER TABLEALTER TABLE

  • ALTER TABLE SET LOCK ESCALATION non deve essere utilizzato se la replica della modifica dello schema è abilitata e una topologia include SQL Server 2005SQL Server 2005 o SQL Server Compact 3.5SQL Server Compact 3.5 Subscribers.ALTER VIEWALTER TABLE SET LOCK ESCALATION should not be used if schema change replication is enabled and a topology includes SQL Server 2005SQL Server 2005 or SQL Server Compact 3.5SQL Server Compact 3.5 Subscribers.ALTER VIEW

  • ALTER PROCEDUREALTER PROCEDURE

  • ALTER FUNCTIONALTER FUNCTION

  • ALTER TRIGGERALTER TRIGGER

    È possibile utilizzare ALTER TRIGGER solo per trigger DML, in quanto non è possibile replicare trigger DDL.ALTER TRIGGER can be used only for data manipulation language [DML] triggers because data definition language [DDL] triggers cannot be replicated.

Importante

È necessario apportare le modifiche dello schema nelle tabelle tramite Transact-SQLTransact-SQL o SQL ServerSQL Server Management Objects (SMO).Schema changes to tables must be made by using Transact-SQLTransact-SQL or SQL ServerSQL Server Management Objects (SMO). Quando si apportano modifiche dello schema in SQL Server Management StudioSQL Server Management Studio, Management StudioManagement Studio tenta di eliminare e ricreare la tabella.When schema changes are made in SQL Server Management StudioSQL Server Management Studio, Management StudioManagement Studio attempts to drop and re-create the table. Poiché non è possibile eliminare gli oggetti pubblicati, la modifica dello schema ha esito negativo.You cannot drop published objects, therefore the schema change fails.

Per la replica transazionale e di tipo merge, le modifiche dello schema vengono propagate in modo incrementale quando l'agente di distribuzione o l'agente di merge è in esecuzione.For transactional replication and merge replication, schema changes are propagated incrementally when the Distribution Agent or Merge Agent runs. Per la replica snapshot, le modifiche dello schema vengono propagate quando viene applicato un nuovo snapshot al Sottoscrittore.For snapshot replication, schema changes are propagated when a new snapshot is applied at the Subscriber. Nella replica snapshot, una nuova copia dello schema viene inviata al Sottoscrittore ogni volta che viene eseguita la sincronizzazione.In snapshot replication, a new copy of the schema is sent to the Subscriber each time synchronization occurs. Pertanto, tutte le modifiche dello schema, non solo quelle elencate sopra, negli oggetti pubblicati in precedenza vengono automaticamente propagate con ogni sincronizzazione.Therefore, all schema changes (not just those listed above) to previously published objects are automatically propagated with each synchronization.

Per informazioni sull'aggiunta e l'eliminazione di articoli nelle pubblicazioni, vedere Aggiungere ed eliminare articoli in pubblicazioni esistenti.For information about adding and removing articles from publications, see Add Articles to and Drop Articles from Existing Publications.

Per replicare le modifiche dello schemaTo replicate schema changes

Le modifiche dello schema elencate sopra vengono replicate per impostazione predefinita.The schema changes listed above are replicated by default. Per informazioni sulla disabilitazione della replica delle modifiche dello schema, vedere Replicate Schema Changes.For information about disabling the replication of schema changes, see Replicate Schema Changes.

Considerazioni sulle modifiche dello schemaConsiderations for Schema Changes

Quando si replicano le modifiche dello schema, tenere presenti le considerazioni seguenti.Keep the following considerations in mind when replicating schema changes.

Considerazioni generaliGeneral Considerations

  • Le modifiche dello schema sono soggette a tutte le restrizioni imposte da Transact-SQLTransact-SQL.Schema changes are subject to any restrictions imposed by Transact-SQLTransact-SQL. ALTER TABLE, ad esempio, non consente di eseguire l'istruzione ALTER per le colonne chiave primaria.For example, ALTER TABLE does not allow you to ALTER primary key columns.

  • Il mapping dei tipi di dati viene eseguito solo per lo snapshot iniziale.Data type mapping is performed only for the initial snapshot. Il mapping delle modifiche dello schema alle versioni precedenti dei tipi di dati non viene eseguito.Schema changes are not mapped to previous versions of data types. Se ad esempio viene utilizzata l'istruzione ALTER TABLE ADD datetime2 column in SQL Server 2012SQL Server 2012, il tipo di dati non viene convertito in nvarchar per i Sottoscrittori di SQL Server 2005SQL Server 2005 .For example, if the statement ALTER TABLE ADD datetime2 column is used in SQL Server 2012SQL Server 2012, the data type is not translated to nvarchar for SQL Server 2005SQL Server 2005 Subscribers. In alcuni casi, le modifiche dello schema vengono bloccate nel server di pubblicazione.In some cases, schema changes are blocked on the Publisher.

  • Se si imposta una pubblicazione in modo da consentire la propagazione delle modifiche dello schema, queste ultime vengono propagate indipendentemente da come è impostata la relativa opzione dello schema per un articolo nella pubblicazione.If a publication is set to allow the propagation of schema changes, schema changes are propagated regardless of how the related schema option is set for an article in the publication. Se, ad esempio, si sceglie di non replicare i vincoli di chiave esterna per un articolo di tabella, ma in seguito si esegue un comando ALTER TABLE che aggiunge una chiave esterna alla tabella nel server di pubblicazione, la chiave esterna viene aggiunta alla tabella nel Sottoscrittore.For example, if you select not to replicate foreign key constraints for a table article, but then issue an ALTER TABLE command that adds a foreign key to the table at the Publisher, the foreign key is added to the table at the Subscriber. Per evitare questo problema, disabilitare la propagazione delle modifiche dello schema prima di eseguire il comando ALTER TABLE.To prevent this, disable the propagation of schema changes before issuing the ALTER TABLE command.

  • Le modifiche dello schema devono essere apportate solo nel server di pubblicazione, non nei Sottoscrittori, inclusi i Sottoscrittori di ripubblicazione.Schema changes should be made only at the Publisher, not at Subscribers (including republishing Subscribers). La replica di tipo merge impedisce le modifiche dello schema nel Sottoscrittore.Merge replication prevents schema changes at the Subscriber. La replica transazionale non impedisce le modifiche, ma le modifiche possono provocare errori nella replica.Transactional replication does not prevent the changes, but the changes can cause replication to fail.

  • Per impostazione predefinita, le modifiche propagate a un Sottoscrittore di ripubblicazione vengono propagate ai relativi Sottoscrittori.Changes propagated to a republishing Subscriber are by default propagated to its Subscribers.

  • Se la modifica dello schema fa riferimento a oggetti o vincoli esistenti nel server di pubblicazione, ma non nel Sottoscrittore, la modifica dello schema avrà esito positivo nel server di pubblicazione, ma negativo nel Sottoscrittore.If the schema change references objects or constraints existing on the Publisher but not on the Subscriber, the schema change will succeed on the Publisher but will fail on the Subscriber.

  • È necessario che il nome e il proprietario di tutti gli oggetti nel Sottoscrittore a cui si fa riferimento quando si aggiunge una chiave esterna siano gli stessi dell'oggetto corrispondente nel server di pubblicazione.All objects on the Subscriber that are referenced when adding a foreign key must have the same name and owner as the corresponding object on the Publisher.

  • L'aggiunta, la rimozione e la modifica di indici in modo esplicito non sono supportate.Explicitly adding, dropping, or altering indexes is not supported. Gli indici creati in modo implicito per i vincoli, ad esempio un vincolo di chiave primaria, sono supportati.Indexes created implicitly for constraints (such as a primary key constraint) are supported.

  • La modifica o l'eliminazione di colonne Identity gestite dalla replica non è supportata.Altering or dropping identity columns that are managed by replication is not supported. Per altre informazioni sulla gestione automatica di colonne Identity, vedere Replicare colonne Identity.For more information about automatic management of identity columns, see Replicate Identity Columns.

  • Le modifiche dello schema che includono funzioni non deterministiche non sono supportate, in quanto possono restituire dati diversi nel server di pubblicazione e nel Sottoscrittore, impedendo la convergenza.Schema changes that include nondeterministic functions are not supported because they can result in data at the Publisher and Subscriber being different (referred to as non-convergence). Se, ad esempio, si esegue il comando ALTER TABLE SalesOrderDetail ADD OrderDate DATETIME DEFAULT GETDATE()nel server di pubblicazione, i valori saranno diversi quando il comando viene replicato nel Sottoscrittore ed eseguito.For example, if you issue the following command at the Publisher: ALTER TABLE SalesOrderDetail ADD OrderDate DATETIME DEFAULT GETDATE(), the values are different when the command is replicated to the Subscriber and executed. Per altre informazioni sulle funzioni non deterministiche, vedere Deterministic and Nondeterministic Functions.For more information about nondeterministic functions, see Deterministic and Nondeterministic Functions.

  • È consigliabile denominare i vincoli in modo esplicito.It is recommended that constraints be explicitly named. Se un vincolo non viene denominato in modo esplicito, SQL ServerSQL Server genera un nome per il vincolo, che sarà diverso nel server di pubblicazione e in ogni Sottoscrittore.If a constraint is not explicitly named, SQL ServerSQL Server generates a name for the constraint, and these names will be different on the Publisher and each Subscriber. Ciò può causare problemi durante la replica delle modifiche dello schema.This can cause issues during the replication of schema changes. Se ad esempio viene eliminata una colonna nel server di pubblicazione, insieme a un vincolo dipendente, il processo di replica tenterà di eliminare tale vincolo nel Sottoscrittore.For example, if you drop a column at the Publisher and a dependent constraint is dropped, replication will attempt to drop the constraint at the Subscriber. L'eliminazione del vincolo nel Sottoscrittore non potrà tuttavia essere eseguita, poiché il nome del vincolo è diverso.The drop at the Subscriber will fail because the name of the constraint is different. Se la sincronizzazione ha esito negativo per un problema di denominazione del vincolo, eliminare manualmente il vincolo nel Sottoscrittore e quindi eseguire nuovamente l'agente di merge.If synchronization fails because of a constraint naming issue, manually drop the constraint at the Subscriber and then rerun the Merge Agent.

  • Se viene pubblicata una tabella per la replica, non è possibile modificare una colonna in tale tabella impostando il tipo di dati XML se è già stato generato uno snapshot di pubblicazione. Per modificare la colonna, è necessario prima rimuovere la replica.If a table is published for replication, it is not possible to alter a column in that table to a data type of XML if a publication snapshot has already been generated To alter the column, you must first remove replication.

  • Read Uncommitted non è un livello di isolamento supportato quando si esegue la DDL in una tabella pubblicata.Read uncommitted is not a supported isolation level when doing DDL on a published table.

  • È consigliabile non utilizzareSET CONTEXT_INFO per modificare il contesto delle transazioni in cui le modifiche dello schema vengono effettuate negli oggetti pubblicati.SET CONTEXT_INFO should not be used to modify the context of transactions where schema changes are performed against published objects.

Aggiunta di colonneAdding Columns

  • Per aggiungere una nuova colonna a una tabella e includere la colonna in una pubblicazione esistente, eseguire ALTER TABLE <Tabella> ADD <Colonna>.To add a new column to a table and include that column in an existing publication, execute ALTER TABLE <Table> ADD <Column>. Per impostazione predefinita, la colonna viene quindi replicata a tutti i Sottoscrittori.By default, the column is then replicated to all Subscribers. È necessario che la colonna consenta i valori NULL o che includa un vincolo DEFAULT.The column must allow NULL values or include a default constraint. Per altre informazioni sull'aggiunta di colonne, vedere la sezione "Replica di tipo merge" in questo argomento.For more information about adding columns, see the "Merge Replication" section in this topic.

  • Per aggiungere una nuova colonna a una tabella e non includere la colonna in una pubblicazione esistente, disabilitare la replica delle modifiche dello schema e quindi eseguire ALTER TABLE <Tabella> ADD <Colonna>.To add a new column to a table and not include that column in an existing publication, disable the replication of schema changes, and then execute ALTER TABLE <Table> ADD <Column>.

  • Per includere una colonna esistente in una pubblicazione esistente, usare sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL) o la finestra di dialogo Proprietà pubblicazione - <Pubblicazione>.To include an existing column in an existing publication, use sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL), or the Publication Properties - <Publication> dialog box.

    Per altre informazioni, vedere Define and Modify a Column Filter.For more information, see Define and Modify a Column Filter. Sarà necessario reinizializzare le sottoscrizioni.This will require subscriptions to be reinitialized.

  • Non è consentito aggiungere una colonna Identity a una tabella pubblicata, perché ciò può impedire la convergenza dei dati durante la replica della colonna nel Sottoscrittore.Adding an identity column to a published table is not supported, because it can result in non-convergence when the column is replicated to the Subscriber. I valori della colonna Identity nel server di pubblicazione dipendono dall'ordine in cui vengono fisicamente archiviate le righe della tabella interessata.The values in the identity column at the Publisher depend on the order in which the rows for the affected table are physically stored. Nel caso in cui le righe siano state archiviate in modo diverso nel Sottoscrittore, il valore della colonna Identity può essere diverso per le stesse righe.The rows might be stored differently at the Subscriber; therefore the value for the identity column can be different for the same rows.

Eliminazione di colonneDropping Columns

  • Per eliminare una colonna da una pubblicazione esistente e dalla tabella nel server di pubblicazione, eseguire ALTER TABLE <Tabella> DROP <Colonna>.To drop a column from an existing publication and drop the column from the table at the Publisher, execute ALTER TABLE <Table> DROP <Column>. Per impostazione predefinita, la colonna viene quindi eliminata dalla tabella in tutti i Sottoscrittori.By default, the column is then dropped from the table at all Subscribers.

  • Per eliminare una colonna da una pubblicazione esistente, ma mantenerla nella tabella del server di pubblicazione, usare sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL) o la finestra di dialogo Proprietà pubblicazione - <Pubblicazione>.To drop a column from an existing publication but retain the column in the table at the Publisher, use sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL), or the Publication Properties - <Publication> dialog box.

    Per altre informazioni, vedere Define and Modify a Column Filter.For more information, see Define and Modify a Column Filter. Sarà necessario generare un nuovo snapshot.This will require a new snapshot to be generated.

  • La colonna da eliminare non può essere utilizzata nelle clausole di filtro degli articoli contenuti nelle pubblicazioni del database.The column to be dropped cannot be used in the filter clauses of any article of any publication in the database.

  • Quando si elimina una colonna da un articolo pubblicato, considerare eventuali vincoli, indici o proprietà della colonna che potrebbero avere conseguenze sul database.When dropping a column from a published article, take into consideration any constraints, indexes, or properties of the column that could affect the database. Esempio:For example:

    • Non è possibile eliminare le colonne utilizzate in una chiave primaria dagli articoli nelle pubblicazioni transazionali, in quanto vengono utilizzate dalla replica.You cannot drop columns used in a primary key from articles in transactional publications, because they are used by replication.

    • Non è possibile eliminare la colonna rowguid dagli articoli nelle pubblicazioni di tipo merge o la colonna mstran_repl_version dagli articoli nelle pubblicazioni transazionali che supportano l'aggiornamento delle sottoscrizioni, in quanto queste colonne vengono utilizzate dalla replica.You cannot drop the rowguid column from articles in merge publications or the mstran_repl_version column from articles in transactional publications that support updating subscriptions, because they are used by replication.

    • Le modifiche degli indici non vengono propagate ai Sottoscrittori. Se si elimina una colonna e un indice dipendente nel server di pubblicazione, l'eliminazione dell'indice non viene replicata.Index changes are not propagated to Subscribers: if you drop a column at the Publisher and a dependent index is dropped, the index drop is not replicated. È necessario eliminare l'indice nel Sottoscrittore prima di eliminare la colonna nel server di pubblicazione, in modo che l'eliminazione della colonna abbia esito positivo quando viene replicata dal server di pubblicazione al Sottoscrittore.You should drop the index at the Subscriber before dropping the column at the Publisher, so that the column drop succeeds when it is replicated from the Publisher to the Subscriber. Se la sincronizzazione non riesce a causa di un indice nel Sottoscrittore, eliminare manualmente l'indice nel Sottoscrittore e quindi eseguire nuovamente l'agente di merge.If synchronization fails because of an index at the Subscriber, manually drop the index and then rerun the Merge Agent.

    • I vincoli devono essere denominati in modo esplicito per poter essere eliminati.Constraints should be explicitly named to allow for dropping. Per altre informazioni, vedere la sezione "Considerazioni generali" più indietro in questo argomento.For more information, see the "General Considerations" section earlier in this topic.

Replica transazionaleTransactional Replication

  • Le modifiche dello schema vengono propagate ai Sottoscrittori in cui sono in esecuzione versioni precedenti di SQL ServerSQL Server, ma l'istruzione DDL deve includere solo la sintassi supportata dalla versione nel Sottoscrittore.Schema changes are propagated to Subscribers running previous versions of SQL ServerSQL Server, but the DDL statement should only include syntax supported by the version at the Subscriber.

    Se il Sottoscrittore ripubblica i dati, le uniche modifiche dello schema supportate sono l'aggiunta e l'eliminazione di una colonna.If the Subscriber republishes data, the only supported schema changes are adding and dropping a column. Queste modifiche devono essere apportate nel server di pubblicazione tramite sp_repladdcolumn (Transact-SQL) e sp_repldropcolumn (Transact-SQL) anziché con la sintassi ALTER TABLE DDL.These changes should be made on the Publisher using sp_repladdcolumn (Transact-SQL) and sp_repldropcolumn (Transact-SQL) rather than ALTER TABLE DDL syntax.

  • Le modifiche dello schema non vengono replicate nei Sottoscrittori non SQL Server.Schema changes are not replicated to non-SQL Server Subscribers.

  • Le modifiche dello schema non vengono propagate dai server di pubblicazione non SQL ServerSQL Server .Schema changes are not propagated from non- SQL ServerSQL Server Publishers.

  • Non è possibile modificare le viste indicizzate replicate come tabelle.You cannot alter indexed views that are replicated as tables. È possibile modificare le viste indicizzate replicate come viste indicizzate, ma la modifica ne comporta la trasformazione in viste normali.Indexed views that are replicated as indexed views can be altered, but altering them will cause them to become regular views, rather than indexed views.

  • Se la pubblicazione supporta le sottoscrizioni ad aggiornamento immediato o ad aggiornamento in coda, il sistema deve essere messo in stato di inattività prima di apportare modifiche dello schema: è necessario arrestare tutte le attività nella tabella pubblicata nel server di pubblicazione e nei Sottoscrittori e propagare a tutti i nodi le modifiche ai dati in sospeso.If the publication supports immediate updating or queued updating subscriptions, the system must be quiesced before making schema changes: all activity on the published table must be stopped at the Publisher and Subscribers, and pending data changes must be propagated to all nodes. Dopo avere propagato a tutti i nodi le modifiche dello schema, è possibile riprendere le attività nelle tabelle pubblicate.After the schema changes have propagated to all nodes, activity can resume on the published tables.

  • Se la pubblicazione si trova in una topologia peer-to-peer, è necessario mettere il sistema in stato di inattività prima di apportare modifiche dello schema.If the publication is in a peer-to-peer topology, the system must be quiesced before making schema changes. Per altre informazioni, vedere Come mettere una topologia di replica in stato di inattività (programmazione Transact-SQL della replica).For more information, see Quiesce a Replication Topology (Replication Transact-SQL Programming).

  • L'aggiunta di una colonna timestamp a una tabella e il mapping tra timestamp e binary(8) provoca la reinizializzazione dell'articolo per tutte le sottoscrizioni attive.Adding a timestamp column to a table and mapping the timestamp to binary(8) causes the article to be reinitialized for all active subscriptions.

Replica di tipo mergeMerge Replication

  • La modalità di gestione delle modifiche dello schema da parte della replica di tipo merge è determinata dal livello di compatibilità della pubblicazione e dal fatto che lo snapshot sia impostato in modalità nativa (impostazione predefinita) o in modalità carattere:How merge replication handles schema changes is determined by the publication compatibility level, and whether the snapshot is set to native mode (default) or character mode:

    • Per replicare le modifiche dello schema, è necessario che il livello di compatibilità della pubblicazione sia almeno 90RTM.To replicate schema changes, the compatibility level of the publication must be at least 90RTM. Se nei Sottoscrittori sono in esecuzione versioni precedenti di SQL ServerSQL Server o se il livello di compatibilità è inferiore a 90RTM, è possibile usare sp_repladdcolumn (Transact-SQL) e sp_repldropcolumn (Transact-SQL) per aggiungere ed eliminare colonne.If Subscribers are running previous versions of SQL ServerSQL Server or the compatibility level is less than 90RTM you can use sp_repladdcolumn (Transact-SQL) and sp_repldropcolumn (Transact-SQL) to add and drop columns. Tuttavia, queste procedure sono deprecate.However, these procedures are deprecated.

    • Se si tenta di aggiungere a un articolo esistente una colonna con un tipo di dati introdotto in SQL Server 2008SQL Server 2008, SQL ServerSQL Server presenta il comportamento seguente:If you try to add to an existing article a column with a data type that was introduced in SQL Server 2008SQL Server 2008, SQL ServerSQL Server has the following behavior:

      100RTM, snapshot nativo100RTM, native snapshot 100RTM, snapshot carattere100RTM, character snapshot Tutti gli altri livelli di compatibilitàAll other compatibility levels
      hierarchyidhierarchyid Modifica consentitaAllow change Modifica bloccataBlock change Modifica bloccataBlock change
      geography e geometrygeography and geometry Modifica consentitaAllow change Modifica consentitaAllow change Modifica bloccataBlock change
      filestreamfilestream Modifica consentitaAllow change Modifica bloccataBlock change Modifica bloccataBlock change
      date, time, datetime2e datetimeoffsetdate, time, datetime2, and datetimeoffset Modifica consentitaAllow change Modifica consentitaAllow change Modifica bloccataBlock change

      * I Sottoscrittori di SQL Server Compact convertono questi tipi di dati nel Sottoscrittore.*SQL Server Compact Subscribers convert these data types at the Subscriber.

  • Se si verifica un errore quando si applica una modifica dello schema, ad esempio un errore dovuto all'aggiunta di una chiave esterna che fa riferimento a una tabella non disponibile nel Sottoscrittore, la sincronizzazione ha esito negativo ed è necessario reinizializzare la sottoscrizione.If an error occurs when applying a schema change (such as an error resulting from adding a foreign key that references a table not available at the Subscriber), synchronization fails and the subscription must be reinitialized.

  • Se si apporta una modifica dello schema in una colonna coinvolta in un filtro join o in un filtro con parametri, è necessario reinizializzare tutte le sottoscrizioni e rigenerare lo snapshot.If a schema change is made on a column involved in a join filter or parameterized filter, you must reinitialize all subscriptions and regenerate the snapshot.

  • La replica di tipo merge offre stored procedure che consentono di ignorare le modifiche dello schema durante la risoluzione dei problemi.Merge replication provides stored procedures to skip schema changes during troubleshooting. Per altre informazioni, vedere sp_markpendingschemachange (Transact-SQL) e sp_enumeratependingschemachanges (Transact-SQL).For more information, see sp_markpendingschemachange (Transact-SQL) and sp_enumeratependingschemachanges (Transact-SQL).

Vedere ancheSee Also

ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
ALTER VIEW (Transact-SQL) ALTER VIEW (Transact-SQL)
ALTER PROCEDURE (Transact-SQL) ALTER PROCEDURE (Transact-SQL)
ALTER FUNCTION (Transact-SQL) ALTER FUNCTION (Transact-SQL)
ALTER TRIGGER (Transact-SQL) ALTER TRIGGER (Transact-SQL)
Pubblicare dati e oggetti di database Publish Data and Database Objects
Rigenerare procedure transazionali personalizzate per riflettere le modifiche dello schemaRegenerate Custom Transactional Procedures to Reflect Schema Changes