Array
(
)

Replicação Merge e Constraints de limitação para Assinante

Mauro Moraes
   - 21 fev 2011


Olá pessoal! Estou querendo tirar uma dúvida sobre a replicação Merge no SQL Server 2005. Fazendo testes percebi que quando criamos um campo de autonumeração numa tabela e replicamos a mesma para o assinante, a própria replicação cria umas contraints e dentre elas aparece uma que me deixou preocupado.

Tenho duas máquina virtuais com W2K3 SP1 no virtualbox 4.0.2 e ambos com SQL Server 2005 Enterprise SP1.

Ao fazer uma INSERÇÃO com uns 10.000 registros, como teste, no assinante, para ver a replicação no Publicador, apenas 2.000 registros são inseridos. Interessante que se eu fizer o contrário, do Publicador para o Assinante, os 10.000 registros passam sem problemas na mesma tabela. Outro teste que não deu problema foi atualizar 10.000 registros. nas duas pontas testei e não ocorreu problema, todos foram atualizados sem erro.

Analisando o campo da tabela eu tenho as seguintes informações:
Nome do campo: id
tipo: INT IDENTITY (1, 1)
Constraint que aparece: ([id]>(500000) AND [id]<=(501000) OR [id]>(501000) AND [id] <=(502000))

Obs.:
O campo "id" está com a propriedade da Constraint: "Enforce For INSERTs And UPDATEs" como "Yes".

Bom até aí eu entendi que existe uma limitação de inserção do assinante para o publicador e a constraint limita em 2000 registros.
As perguntas são:

a) para que ocorre esta limitação se são dois servidores, em apenas dois pontos(Publicador e Assinante)?

b) Como faço para resolver isso sem ter que tirar o campo de autonumeração da tabela, e todos os registros entrarem normamente como acontece no publicador para o assinante?

c) Alguém conhece alguma documentação que pudesse ajudar?

Agradeço muito a todos que puderem colaborar comigo.