Firebird – Verificar se campo existe

* Essa consulta é CASE SENSITIVE

SELECT * FROM rdb$relation_fields
WHERE RDB$RELATION_FIELDS.rdb$relation_name = :tabela
AND RDB$RELATION_FIELDS.RDB$FIELD_NAME = :campo

Caso não queira ter problemas com maiúsculas e minúsculas, utilize a função UPPER.

Exemplo: […] UPPER(RDB$RELATION_FIELDS.rdb$relation_name) = UPPER(:tabela)

Campos retornados

RDB$RELATION_FIELDS armazena as definições das colunas da tabela e da View.

ColunaTipoDescrição
RDB$FIELD_NAMECHAR(31)Nome da Coluna.
RDB$RELATION_NAMECHAR(31)Nome da Tabela ou View.
RDB$FIELD_SOURCECHAR(31)Nome do domínio, seja um definido pelo usuário especificado na definição da tabela ou um criado automaticamente pelo sistema.
RDB$QUERY_NAMECHAR(31)* Atualmente não utilizado
RDB$BASE_FIELDCHAR(31)Preenchido apenas para uma View, é o nome da coluna da tabela base
RDB$EDIT_STRINGVARCHAR(127)* Não utilizado
RDB$FIELD_POSITIONSMALLINTA posição ordenada, iniciada por zero, da coluna na tabela ou View, numerada da esquerda para a direita.
RDB$QUERY_HEADERBLOB TEXT* Não utilizado
RDB$UPDATE_FLAGSMALLINTIndica se a coluna é regular (valor 1) ou computada (valor 0)
RDB$FIELD_IDSMALLINTUm ID atribuído de RDB $ RELATIONS.RDB $ FIELD_ID no momento em que a coluna foi adicionada à tabela ou exibição. Deve sempre ser tratado como transitório
RDB$VIEW_CONTEXTSMALLINTPara uma coluna de uma View, o identificador interno da tabela base da qual este campo deriva
RDB$DESCRIPTIONBLOB TEXTComentários relacionados a coluna
RDB$DEFAULT_VALUEBLOB BLRO valor armazenado para a cláusula DEFAULT para esta coluna, se houver, escrito em representação de linguagem binária (BLR)
RDB$SYSTEM_FLAGSMALLINTIndica se a coluna é definida pelo usuário (valor 0) ou definida pelo sistema (valor 1 ou maior)
RDB$SECURITY_CLASSCHAR(31)Pode fazer referência a uma classe de segurança definida em RDB $ SECURITY_CLASSES, a fim de aplicar limites de controle de acesso a todos os usuários desta coluna
RDB$COMPLEX_NAMECHAR(31)* Não utilizado
RDB$NULL_FLAGSMALLINTIndica se a coluna pode ser nula (NULL) ou não nula (valor 1)
RDB$DEFAULT_SOURCEBLOB TEXTO texto fonte da cláusula DEFAULT, se houver
RDB$COLLATION_IDSMALLINTO identificador da sequência de agrupamento no conjunto de caracteres da coluna, se não for o agrupamento padrão

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *