Ir para conteúdo
Fórum Script Brasil
  • 0

Replicação com mais de 246 Campos


eder.luca2013

Pergunta

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 para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...