Arquivo para Fevereiro, 2008

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

Deixe um comentário

Activar e desactivar triggers

Desactivar:

ALTER TRIGGER <trigger> INACTIVE

Activar:

ALTER TRIGGER <trigger> ACTIVE

Deixe um comentário