[Replicação] Comandos DDL


Essa semana me deparei com um cenário bem particular em um de nossos clientes. O cliente utiliza replicação transacional e desabilitou nas propriedades da publicação a opção "Replicate Schema Changes", conforme imagem abaixo:

Para habilitar ou desabilitar esta propriedade, podemos utilizar o SSMS, conforme imagem acima, ou utilizar a procedure sp_changepublication como no script abaixo:

DECLARE @publication AS sysname

SET @publication = N'ReplTesteDropColumn'

USE AdventureWorks2016

EXEC sp_changepublication

@publication = @publication,

@property = N'replicate_ddl',

@value = 0 -- disable

GO

Por padrão esta opção é "true" e quando esta propriedade está habilitada, comandos DDL como ALTER TABLE, ALTER PROCEDURE e ALTER FUNCTION são replicados para os assinantes.

Como essa opção estava desabilitada (false) o cliente esperava que nenhum comando DDL fosse replicado, porém, eles notaram que um ALTER TABLE com DROP COLUMN foi sincronizado para os assinantes.

Analisando a documentação da propriedade "Replicate Schema Changes" verificamos que o ALTER TABLE com DROP COLUMN é uma excessão; portanto, independente dessa propriedade estar habilitada ou não, o ALTER TABLE com DROP COLUMN será replicado para os assinantes.

Pra ficar no radar 🙂

Referência adicional:

https://docs.microsoft.com/en-us/sql/relational-databases/replication/publish/replicate-schema-changes

Silas

============================

The code and techniques described in this blog are presented to the reader ‘as is’, without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by any of the authors or Microsoft. Further, the authors shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages. Your use of the information contained in these pages, is at your sole risk.

Comments (0)

Skip to main content