Alterando campos no Firebird

Apesar de muito procurar, não consegui encontrar um método para alterar um campo de NULL para NOT NULL sem utilizar os objectos internos do Firebird .

Para isso é necessário:

UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = 1
WHERE RDB$RELATION_NAME = ‘tablename’ AND
RDB$FIELD_NAME = ‘fieldname’;

Onde: 0 NULL e 1 NOT NULL.

Outras alterações na tabela são possíveis sem tanto trabalho, como por exemplo alterar o tipo de um campo:

ALTER TABLE tablename ALTER fieldname TYPE typefield;

Mas atenção, o Firebird não permite alterações que possam resultar em perda de dados, se um campo é VARCHAR(50), não é possível reduzí-lo, aí não tem jeito, precisa excluir e recriar.

ALTER TABLE tablename DROP fieldname;
ALTER TABLE tablename ADD fieldname typefield;

Ao contrário do que muitos pensam, o MODIFY não funciona no Firebird, pelo menos na versão 2.0.

por Francis David em 08/06/2007

link: http://www.vivaolinux.com.br/dicas/verDica.php?codigo=8683

1 Comentário »

  1. O CARA VALEU MESMO, FOI DE MUIIITA AJUDA… CONTINUE POSTANDO ALGO DO TIPO QUE VAI SALVAR MUITA GENTE,, OBRIGADO

RSS feed for comments on this post · TrackBack URI

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: