• Imprimir

 

Estou escrevendo uma serie de artigo sobre replicação.

 

 

 

Alter table <<tabela>> Alter column <<NOME_COLUNA>> add NOT FOR REPLICATION

Alter table <<tabela>> Alter column <<NOME_COLUNA>> drop NOT FOR REPLICATION

 

Caso voce queira mais informações enquanto não acabo os artigos leia o texto abaixo :

retirado do link ( https://blogs.msdn.microsoft.com/repltalk/2012/03/05/marking-identity-columns-as-not-for-replication-in-existing-publication/ )

Marcando as Colunas de Identidade como "Não para Replicação" na Publicação existente

Chris Skorlinski 
Microsoft SQL Server Escalation Services

Encontramos um problema hoje com um Agente de Distribuição falhando com "Row Not Found" ao pressionar uma UPDATE para um Assinante. Alcançando o problema, descobrimos que o Assinante foi criado usando um Backup \ Restore do Editor e tinha Colunas de Identidade. As Colunas de Identidade tinham "Não para Replicação" configuradas para NO, que sinaliza o Agente de Distribuição para "renumerar" (ou seja, reensar), pois é Replicação para o Assinante.

Por exemplo: linha 100 inserida no Publisher, mas é renumerada pelo Agente de Distribuição para a linha 20 no Assinante. Mais tarde, a mesma linha 100 é editada no Publisher. O Distribution Agent procura, mas não consegue encontrar a linha 100 e falha com "row not found". Em vez disso, queremos que o Agente de Distribuição use o mesmo valor do Editor. Para isso, precisamos habilitar a configuração "Não para replicação" na coluna Identidade na tabela do editor.

Se você tentar e alterar o design da tabela do editor enquanto os dados existem, você obterá um erro que impede a poupança de alterações. Para contornar esse problema, você pode usar o procedimento armazenado abaixo para alterar a configuração "Não para replicação" para todas as tabelas no banco de dados, então reinicialize o assinante.

Altere a configuração de identidade para todas as tabelas no banco de dados:

EXEC sp_msforeachtable @ command1 = ' 
declarar @int set int
 @int = object_id ( "?" )
EXEC sys.sp_identitycolumnforreplication @int, 1 '