Jump to content
Fórum Script Brasil
  • 0

Replicação com mais de 246 Campos


Question

Bom dia

Pessoal estou com um grande problema tenho uma empresa que possui uma filial e preciso realizar replicação de banco de dados utilizando o sql server 2008, porém uma determinada tabela do meu banco possui 270 colunas sei que é um número exagerado mas a empresa na qual desenvolveu o sistema esta revendo essa tabela para uma nova versão, porém preciso fazer a replicação e sei que o sql server tem o limite de 246 colunas replicadas gostaria de saber se alguém saberia me indicar uma forma de resolver isso verifiquei que existe um post que o fulvio comenta que existe um post mais antigo que explica como resolver essa situação mas não localizei essa informação no forum se puderem me ajudar agradeço muito.

Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Bom dia Eder,

Seja bem vindo no Forum!!

As vezes temos muitos posts e acabamos nos perdendo... rs.

Em relação a sua dúvida, você terá que manipular o nível de linha e coluna.

Informações do msdn:

Se o seu aplicativo não exigir o rastreamento de nível de coluna, será recomendado que você use o rastreamento de nível de linha (o padrão) porque normalmente ele resulta em um melhor desempenho da sincronização. Se o rastreamento de linha for usado, a tabela base poderá incluir no máximo 1.024 colunas, mas as colunas devem ser filtradas do artigo de modo que sejam publicadas 246 colunas, no máximo. Se rastreamento de coluna for usado, a tabela base poderá incluir no máximo 246 colunas.

Como utilizar (dica):

http://msdn.microsoft.com/pt-br/library/ms...sql.105%29.aspx

Link to post
Share on other sites
  • 0
Bom dia Eder,

Seja bem vindo no Forum!!

As vezes temos muitos posts e acabamos nos perdendo... rs.

Em relação a sua dúvida, você terá que manipular o nível de linha e coluna.

Informações do msdn:

Se o seu aplicativo não exigir o rastreamento de nível de coluna, será recomendado que você use o rastreamento de nível de linha (o padrão) porque normalmente ele resulta em um melhor desempenho da sincronização. Se o rastreamento de linha for usado, a tabela base poderá incluir no máximo 1.024 colunas, mas as colunas devem ser filtradas do artigo de modo que sejam publicadas 246 colunas, no máximo. Se rastreamento de coluna for usado, a tabela base poderá incluir no máximo 246 colunas.

Como utilizar (dica):

http://msdn.microsoft.com/pt-br/library/ms...sql.105%29.aspx

Fulvio verifiquei o link que você me passou e cheguei a seguinte conclusão que deveria executar o seguinte comando:

DECLARE @publication AS sysname;

DECLARE @article AS sysname;

SET @publication = N'SAU_PESSOAENTREVISTA';

SET @article = N'';

-- Enable column-level conflict tracking.

-- Changing this property requires that existing subscriptions

-- be reinitialized and that a new snapshot be generated.

USE [VIBRA]

EXEC sp_changemergearticle

@publication = @publication,

@article = @article,

@property = N'column_tracking',

@value = N'false',

@force_invalidate_snapshot = 1,

@force_reinit_subscription = 1;

GO

porém em @article não tenho idéia do que colocar sou novo com esse conceito de replicação você poderia me ajudar?

Link to post
Share on other sites
  • 0
Bom dia Eder,

No @article você colocará a tabela na qual criará a publicação.

Segue link:

http://msdn.microsoft.com/pt-br/library/ms...sql.105%29.aspx

Consegui executar o comando mas mesmo assim quando vou inserir mais campos na tabela o sql me reporta o seguinte erro:

Mensagem 25006, Nível 16, Estado 1, Procedimento sp_mergearticlecolumn, Linha 236

Não é possível adicionar a nova coluna ao artigo 'SAU_PESSOAENTREVISTA', porque ele tem mais de 245 colunas replicadas.

Mensagem 21530, Nível 16, Estado 1, Procedimento sp_MSmerge_ddldispatcher, Linha 191

Falha na alteração do esquema durante a execução de um procedimento de replicação interno. Para obter a ação corretiva, consulte as outras mensagens de erro que acompanham esta mensagem.

Mensagem 3609, Nível 16, Estado 2, Linha 1

A transação foi encerrada no gatilho. O lote foi anulado.

alguém sabe como eu poderia realizar a publicação com mais de 246 colunas?

Link to post
Share on other sites
  • 0
Bom dia Eder,

Apenas uma dúvida.... você já pensou em criar duas tabelas para a replicação e fazer uma view para ajuntar as informações?

Fulvio até pensei em fazer isso porém o que acontece isso esta sendo implementado em uma nova versão do sistema e me pediram para ver se consigo resolver sem essa intervenção, pois se eu fizer isso terei de mudar vários códigos da minha aplicação, vendo em um fórum verifiquei que existe como criar uma replicação transacional bidirecional alguém já implementou isso?

Link to post
Share on other sites
  • 0

Creio que transações bidirecionais não resolveria este problema, pois está utilizando os limites da ferramenta.

Para não alterar o código fonte, a view teria que ter o nome exato da tabela origem. As tabelas que conteriam as informações teriam nomes diferentes e seriam identificadas como "tabelas de transporte". Com isto não precisaria realizar alterações no código fonte.

Não conheço nenhum caso de tabelas que tinham esta quantidade de colunas (formas normais). Estou dando algumas dicas, mas nunca vi nenhum caso concreto em relação a isto.

Link to post
Share on other sites
  • 0
Creio que transações bidirecionais não resolveria este problema, pois está utilizando os limites da ferramenta.

Para não alterar o código fonte, a view teria que ter o nome exato da tabela origem. As tabelas que conteriam as informações teriam nomes diferentes e seriam identificadas como "tabelas de transporte". Com isto não precisaria realizar alterações no código fonte.

Não conheço nenhum caso de tabelas que tinham esta quantidade de colunas (formas normais). Estou dando algumas dicas, mas nunca vi nenhum caso concreto em relação a isto.

Fúlvio mais uma vez obrigado pela ajuda estarei analisando esse último post, não sabia que se à view tiver o mesmo nome da tabela não teríamos problemas vou testar sua idéia e posto novamente.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148899
    • Total Posts
      644929
×
×
  • Create New...