Pular para o conteúdo principal

Replicação coluna Text – SQL Server 2000

Hoje no trabalho, a pedido de um analista de sistemas, coloquei para replicar uma tabela.

Eis que, depois de tudo pronto e configurado, no monitor de replicação do enterprise manager, tenho uma mensagem de erro na replicação, pois não é permitido update de coluna text junto com um index clustered.

Agora mais essa, o SQL Server todo dia me prega uma peça. Bom, consultando meus caros colegas de trabalho pelo google, não encontrei nenhuma solução real para o problema, na replicação. Algumas soluções encontradas eram tirar o índice clustered e tentar update um por vez, dos campos.

Bom resolvi usar minha própria solução: tirar a tabela da replicação, mudar a maldita coluna text para varchar e colocar para replicar novamente.

Como a tabela já era populada e nunca havia tido a necessidade de replicá-la, tive que descobrir qual o tamanho máximo que algum registro da coluna text estava utilizando:

select max(len(convert(varchar(8000),mensagem))) 
from base..tabela


Varchar(8000) é por causa do limite do tamanho de uma coluna tipo varchar. Já era sabido que não havia nenhum texto maior que 8000 caracteres na coluna text.



Mensagem é o nome do campo text em questão.



Com a função len() conseguimos o numero de caracteres da coluna text, convertida antes para varchar através da função convert(), pois a função não funciona com colunas text direto. Depois foi só encontrar o maior número adquirido, através da função max().



Rodei o script em todos servidores que possuem a tabela em questão e pude chegar a uma decisão sobre o tamanho do varchar novo que substituirá a coluna text. Coloquei o dobro, só por garantia.



Depois de alterado a coluna text da tabela por varchar, foi só adicionar na replicação e tudo fluiu normalmente.



Neste post mostro como alterar um campo text para varchar:

Converter campo text para varchar – SQL Server 2000

Comentários

... disse…
Achei muito util a informação pois aqui onde trabalho tivemos um problema parecisdo pois precisavamos saber qual a maior carta registrada no nosso banco ajudou muito.

Otávio Cruz
Anônimo disse…
Good fill someone in on and this enter helped me alot in my college assignement. Say thank you you as your information.

Postagens mais visitadas deste blog

Gamasutra's Postmorten: RiverMan Media's MadStone

Aqui vão os meus comentários sobre este postmortem. O jogo em questão, MadStone, foi desenvolvido para a plataforma WiiWare, vindo de um antigo sonho de publicar um jogo para Nintendo (dos fundadores da RiverMan). MadStone é um puzzle 2d, onde as peças vão caindo (assim como tetris) e que custa U$8.00 no WiiWare. Antes de publicar um jogo para WiiWare, a desenvolvedora havia já desenvolvido outros dois jogos casuais para PC, Cash Cow e Primate Panic. Tela do jogo MadStone Bom, vamos às dicas deixadas pelos desenvolvedores: O que funcionou: 1. Correr atrás da Nintendo: Entre contatar a Nintendo e se tornar um desenvolvedor autorizado, os desenvolvedores tiveram que correr um pouco atrás. A primeira lição é justamente essa, não é fácil correr atrás e muitas vezes temos que sair de nossa zona de conforto para conseguir as coisas. 2. Plataforma 2D: A decisão de desenvolver um jogo 2D foi tomada por algumas facilidades como ferramentas de arte mais simples, como o photoshop; Pouco código

Converter campo text para varchar – SQL Server 2000

Outro dia, conversando com um analista de sistemas no trabalho, este me perguntou, qual era melhor, usar o tipo text ou varchar no campo. Bom, baseado em minhas experiências, respondi que prefiro trabalhar com varchar. Mas antes, uma breve pesquisa no google nos mostrou que: text     Variable-length data with a maximum length of 2^31 - 1 characters varchar Variable-length data with a maximum of 8,000 characters fonte: Database Journal Depois de analisarmos o propósito a que o campo serviria, decidimos por um campo varchar(500). Se você, assim como eu, tentou utilizar uma alter table, alter column, deve ter visto um aviso do SQL Server de que isto não é possível de se fazer. Mas e agora? É isso mesmo que pensamos: temos que criar o novo campo e popular com o que havia no antigo campo. Exemplo: EXEC sp_rename 'tab_inf_nota.mensagem', 'mensagem_old', 'COLUMN'

My fist job @ game industry!

Yes, yes and yes! I have no words to describe this! Awesome, hot, wild! So, what I did? Work as Game Tester for  @LowpolyStudios The game Blowing Pixels Planet Defender for #iPhone was sended to Apple Store review in August 17 and is expected to launch in August 29, so stay tunned! Blowing Pixels Planet Defender, or just BPPD, is a Defender kind game, so you have to break the enemies invasion. Actually, this game is so addictive, like play Tetris! Your brain will enjoy, hwar, hwar, hawr... You can see more details @ developer's web sites: http://www.lowpoly-studios.com/ http://www.facebook.com/LowpolyStudios http://twitter.com/#!/lowpolystudios http://www.blowing-pixels.com/planet_defender.php Oh! Yeah, the Credit Screen: I'm in Testers part: ALEX CANCADO. So, fuck'n YEAH! Next related post I will write about how I get in touch with developer and my contribution about the game.