Alterar Tamanho do Campo
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.
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
Curtidas 0
Respostas
Edilcimar
19/05/2005
qual o banco de dados?
GOSTEI 0
Valdirdill
19/05/2005
Desculpe. É firebird 1.5 e Delphi 7.
GOSTEI 0
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
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?
Como ficaria o comando então?
GOSTEI 0
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
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
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!
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
19/05/2005
Alguém sabe fazer isso com campos calculados?
GOSTEI 0