[firebase-br] Ajuda com ALTER TABLE

Herminio E. Piram herminiopiram em gmail.com
Sex Jun 26 10:15:30 -03 2009


Pessoal obrigado pelas respostas!

Testei todas, e achei mais facil criar um novo campo, atualiza - lo, dropar
o antigo e renomear o novo. Funcionou blz!

Muito obrigado a todos pelas ideias!

Forte abraço!

2009/6/26 Alexandre Sousa <dave.malkavian em gmail.com>

> Cara, tente evitar esses recursos do IBExpert. Ele altera diretamente as
> tabelas de sistemas do firebird e consequentemente aumenta a chance de uma
> corrupção de base..
>
> O comando de alteração de default do campo se não me engano está disponível
> na versão 2.1 do firebird (me corrijam se eu estiver errado).
>
> Meu conselho: crie um campo temporario, faça um update transferindo o valor
> do campo original para o novo e renomeie o campo assim:
>
> ALTER TABLE [sua tabela] ALTER [nome da coluna temporária] TO [novo nome da
> coluna];
>
> Atenciosamente,
> Alexandre Sousa
>
>
> ----- Original Message ----- From: "Reijanio Nunes Ribeiro" <
> rnribeiro em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, June 26, 2009 9:26 AM
> Subject: Re: [firebase-br] Ajuda com ALTER TABLE
>
>
>
> brother se vc usar o ibexpert ele vai fazer mais ou menos assim
> ALTER DOMAIN RDB$359 SET DEFAULT 0
>
> UPDATE RDB$RELATION_FIELDS F1
> SET F1.RDB$DEFAULT_VALUE = NULL,
>   F1.RDB$DEFAULT_SOURCE = NULL
> WHERE (F1.RDB$RELATION_NAME = 'PRODUTO') AND
>     (F1.RDB$FIELD_NAME = 'IPI')
>
>
> 2009/6/26 Zottis <zottissistemas em brturbo.com.br>
>
>  acho que pelo IBExpert, vc poderá fazer o que vc quer,
>> clicando duas vezes sobre o campo e editando-o.
>>
>> ja via script talvez esse te ajude.
>>
>> alter table Conta_banco
>> add SEQ_DIA_ARQ_REM   INTEGER;
>>
>> alter table TUA_TABELA
>>
>> add    TotalTMP    aqui vc coloca como voce quer o campo;
>>
>>
>> update RDB$RELATION_FIELDS set
>> RDB$FIELD_SOURCE = (select RDB$FIELD_SOURCE
>>                  from RDB$RELATION_FIELDS
>>                  where RDB$FIELD_NAME = 'TOTALTMP' and
>>                  RDB$RELATION_NAME = 'TUA_TABELA')//TEM QUE SER EM
>> MAIUSCULO
>> where RDB$FIELD_NAME = 'TEU_CAMPO' and RDB$RELATION_NAME =
>> 'TUA_TABELA';//TEM QUE SER EM MAIUSCULO
>>
>>
>> alter table TUA_TABELA
>> drop totaltmp;
>>
>>
>> Com este script, eu mudo até os Campos calculados.
>>
>>
>> espero que lhe seja útil.
>>
>>
>> Zottis(TeamFB Users)
>>
>> Zottis Sistemas - 2009 Ano XII
>> Programação Delphi/PHP/Firebird/MySQL
>>
>> "Um homem só tem o direito de olhar
>>  a um outro de cima para baixo, quando
>>  vai ajuda-lo a levantar-se".
>>                 Gabriel Garcia Marquez
>> ----- Original Message ----- From: "Herminio E. Piram" <
>> herminiopiram em gmail.com>
>> To: "FireBird" <lista em firebase.com.br>
>> Sent: Friday, June 26, 2009 8:33 AM
>> Subject: [firebase-br] Ajuda com ALTER TABLE
>>
>>
>>
>> Bom dia pessoa.
>>
>> Pesquisei na net sobre como alterar uma coluna para adicionar um DEFAULT,
>> mas sem sucesso. Encontrei como alterar o nome e tipo.
>>
>> Encontrei estes comandos
>>
>> alter table <tabela> ALTER COLUMN <coluna> set DEFAULT <valor>
>>
>> Invalid token.
>> Dynamic SQL Error.
>> SQL error code = -104.
>> Token unknown - line 1, char 38.
>> set.
>>
>> alter table <tabela> add constraint <nome_Constraint> default <valor> for
>> <campo>
>>
>> Invalid token.
>> Dynamic SQL Error.
>> SQL error code = -104.
>> Token unknown - line 1, char 44.
>> default.
>>
>> Há como alterar a tabela ou tenho que dropar o campo e cria - lo
>> novamente?
>>
>>
>> --
>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>> _
>> _ _ _ _
>>
>> "If the doors of perception were cleansed everything
>> would appear to man as it is, infinite." (William Blake)
>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>> _
>> _ _ _ _
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>  ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _

"If the doors of perception were cleansed everything
would appear to man as it is, infinite." (William Blake)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _



Mais detalhes sobre a lista de discussão lista