Verificar se o campo existe, se não existe cria-lo (em SQL)

18/09/2004

0

Sabem me dizer se é possivel eu verificar se o campo existe, caso não exista cria-lo, mas eu gostaria de fazer isso em um Script SQL e não no Delphi.


Weber

Weber

Responder

Post mais votado

20/09/2004

Dá uma olhada neste script.

select *
from rdb$relation_fields
where RDB$RELATION_FIELDS.rdb$relation_name = ´CLIENTES ´ AND
RDB$RELATION_FIELDS.RDB$FIELD_NAME = ´COD_EMPRESA ´

Se existir o campo cod_empresa da tabela clientes, vai retornar algum registro.

Se vc usar o interbase coloque espaços até dar 31 caracteres entre as aspas, se vc usa o firebird 1.5 não precisa.

[]´s


Fsflorencio

Fsflorencio
Responder

Mais Posts

18/09/2004

Afarias

vc pode apenas executar o script de criação do campo -- caso ele já exista vai retornar um erro, dai é só ignorar.



T+


Responder

20/09/2004

Weber

Mas para isso eu teria que usar o Try do delphi... o que estou querendo fazer é executar atualizações de banco de dados utilizando o programa compactador Winrar.
O winrar aceita comandos MS-DOS após a descompactação do arquivo, dessa forma eu posso fazer a atualização do banco de dados usando o ISQL CONNECT, mas o programa é quando o campo já existe no banco de dados, pois o script não é executado por completo quando isso acontesse.
Por isso estou procurando uma forma de testar se o campo já existe ou não no proprio script.


Responder

20/09/2004

Afarias

|mas o programa é quando o campo já existe no banco de dados, pois o
|script não é executado por completo quando isso acontesse.

se vc está usando o ISQL.EXE do IB (ou FB) para executar o script, sua informação está incorreta. o ISQL retorna uma mensagem de erro mas NÃO para a execução do script, concluindo TODO ELE.

Vc pode evitar esse retorno de erro redirecionando-o para um arquivo ou para NUL, como segue::

isql banco.fdb -i upd.sql -u usuario -p senha -m -o upd.log

ou

isql banco.fdb -i upd.sql -u usuario -p senha -m -o nul


|Se vc usar o interbase coloque espaços até dar 31 caracteres entre as
|aspas,

Eu uso Interbase (TB) e até onde lembro nunca precisei fazer isso.



T+


Responder

20/09/2004

Weber

afarias, obrigado pelo esclarecimento.


Responder

26/07/2017

Joelson

Alguém sabe como fazer isso no próprio delphi 5 com firebierd 2.5? (Verificar se o campo existe, se não existe cria-lo (em SQL))
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar