Pular para o conteúdo principal

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'
ALTER TABLE tab_inf_nota ADD mensagem VARCHAR(1500)
UPDATE tab_inf_nota SET mensagem = SUBSTRING(mensagem_old, 1, 1500)
ALTER TABLE tab_inf_nota DROP COLUMN mensagem_old








Bom, o que acontece é o seguinte:




linha 1: renomeia o coluna text, mensagem, para outro nome.


linha 2: adiciona a coluna nova, varchar(500).


linha 3: atualiza a coluna varchar com o que havia na coluna text.


linha 4: exclui a antiga coluna text.

Comentários

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...

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...

E.T. the Extra-Terrestrial em 3 níveis

E.T. o Extra-Terrestre E.T. o Extra-Terrestre, de 1982, é um consagrado filme co-produzido e dirigido por Steven Spielberg, que fez parte da minha infância. Assisti novamente depois de uns 15 anos e nem preciso dizer que foi nostálgico.