Alterar Tamanho do Campo

Delphi

19/05/2005

Alguém já descobriu uma forma melhor de alterar o tamanho de um campo em um banco de dados em uso.
Faço isso criando um campo com um novo nome, copio todos os dados para o novo campo, deleto o campo antigo, crio-o novamente, agora com o tamanho desejado e copio novamente os dados para ele.
Funciona. Só que é um pouco trabalhoso.
Será que não existe uma função uma função que só aumente o tamanho do campo?

Obs.: tenho que fazer isso via delphi, pois tenho o bd não está comigo. Está com vários clientes.


Valdirdill

Valdirdill

Curtidas 0

Respostas

Edilcimar

Edilcimar

19/05/2005

qual o banco de dados?


GOSTEI 0
Valdirdill

Valdirdill

19/05/2005

Desculpe. É firebird 1.5 e Delphi 7.


GOSTEI 0
Gandalf.nho

Gandalf.nho

19/05/2005

Use o comando ALTER TABLE. Como vc usa FB, vc pode usar o componente IBScript da paleta IBX para isso.


GOSTEI 0
Valdirdill

Valdirdill

19/05/2005

Eu utilizo o comando alter table - via delphi - em scripts para criar (alter table nometabela add nomecampo tipocamp) e apagar (alter table nometabela drop nome campo), mas em campo que já existe? Acho que não é possível ou estou errado?

Como ficaria o comando então?


GOSTEI 0
Hugofab

Hugofab

19/05/2005

valdirdill,

Crie um campo temporário para mover os dados, crie o novo campo com o novo tamanho, mova os dados para o novo campo, delete campo antigo.

o comando para mover o campo:

update tabela SET nome=nome_temporario;

Qualquer coisa estamos ai!


Hugo Fabrício


GOSTEI 0
Valdirdill

Valdirdill

19/05/2005

Acho que você não leu o início deste tópico. Conforme expliquei, é exatamente assim que eu faço. O que que gostaria é de uma maneira mais fácil.

Agradeço a disposição de quem tentou me ajudar. Eu já consegui uma rotina para fazer o que quero sem ter que criar, transportar e deletar campos e dados.

Para quem precisar vou deixar aqui um script de exemplo:
´Alter table TabelaClientes alter column Endereco type VarChar(60)´

Obs.: esse campo - Endereco - tinha tamanho 50. Rodar esse script e ainda preservar os dados só funciona quando você quer aumentar o tamanho do campo. Para diminuir não funciona.

Valeu galera!


GOSTEI 0
Tiagorocha

Tiagorocha

19/05/2005

Alguém sabe fazer isso com campos calculados?


GOSTEI 0
POSTAR