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

Instalar Módulo de Proteção Santander no Mac OSX Mountain Lion

Repararam que o módulo de proteção do banco Santander parou de funcionar? Isso, no meu caso foi quando atualizei o OSX para o Mountain Lion. Há quem diga que parou quando da atualização do navegador Safari. Enfin, depois de brigar um pouco com versões Java, consegui encontrar no forum da Apple a solução: Após atualizar o meu MacBook Pro para o Mountain Lion, o módulo de proteção do Santander parou de funcionar no Google Chrome. Ao clicar no botão instalar módulo de proteção, nada acontecia. Olhando o javascript mais a fundo, achei uma chamada a URL ' https://wwws.santandernet.com.br/MPS/moduloJava.html '. Ao inserir ela no browser e pressionar <ENTER>, recebia uma mensagem 'plugin inactive'. Pare resolver o problema, abri uma nova aba e entrei no endereço 'chrome://plugins/'. Naveguei até o plugin do Java, desabilitei o mesmo e reiniciei o chrome. Feito isso, entrei novamente no endereço e ativei este plugin. Ao entrar novamente no s...

GameDev Tutorial - Basic Circle Chain Engine Using Unity3D Part 1

Circle Chain ( http://www.emanueleferonato.com/stuff/circle_chain/ ) is a simple game developed in 2007 by Emanuele Feronato ( http://www.emanueleferonato.com ) as a monetization test in Flash Games. In fact it's based on Boomshine ( http://www.k2xl.com/games/boomshine/ ) Emanuele has since, ported his game tutorial for lots of platforms: AS3: (complete)  http://www.emanueleferonato.com/2012/02/20/circle-chain-ported-to-as3-with-commented-source-code-available-ready-to-jump-to-the-iphone/ Game Maker: (basic)  http://www.emanueleferonato.com/2012/06/07/circle-chain-engine-made-with-game-maker/ Construct2 HTML5:  http://www.emanueleferonato.com/2012/03/14/html5-version-of-circle-chain-engine-using-scirras-construct2/ Corona SDK:  http://www.emanueleferonato.com/2012/02/24/basic-circle-chain-engine-using-corona-sdk/ Gideros Studio:  http://www.emanueleferonato.com/2012/04/12/basic-circle-chain-engine-using-gideros-studio/ Stencyl:  http://www.emanueleferonato.com/2012/02/29/ba...

Basic Circle Chain Engine Using Unity3D Part 3

What we need to do in this third part: . RedBullet collides with GreenCircle. . GreenCircle spawn GreenBullets. . repeat the process each collision between "bullets" objects and GreenCircles. Basically we need add physics components to GameObjects, then add colliders. 1. In the prefab folder, select RedBulletPrefab. In the Inspector panel, at bottom, click the button Add Component > Physics > Rigidbody. Then uncheck "use gravity", check "Is kinematic" and I checked too the z position and x, y, z rotation freeze options. 2. With RedBulletPrefab selected, add a new physics component, collider. For bullets I choose Box Collider, for the Green Circle I added an Sphere Collider. Just check "Is trigger" since we will use C# script to control collisions.  3. Do the steps 1 and 2 above to GreenCirclePrefab. 4. Let's create a new prefab, GreenBulletPrefab. It's based in the RedBulletPrefab, so drag and drop RedBulletPrefab into H...