[firebase-br] Zerar todos os registros via store procedure

Arlei F. Farnetani Junior junior em farsoft.com.br
Dom Abr 19 12:03:30 -03 2009


Pessoal preciso montar uma store procedure para
zerar através de um comando só todos os registros
das minhas tabelas.

Preciso zerar sem deletar tb os generators.

Alguém tem aí algum script para isto?

O problema é que o script precisa primeiro
checar as dependencias...não sei como fazer
isto...Por exemplo se eu tenho duas tabelas...clientes e orcamentos
se tiver algum cliente em orçamento com ForeinKey...o banco
não consegue deletar a tabela clientes...

O script q estou montando é este:

CREATE OR ALTER PROCEDURE ZERARTABELAS
returns (
    tabela varchar(31))
as
declare variable comando varchar(100);
declare variable qtdtot integer;
declare variable qtdtab integer;
declare variable qtdreg integer;
begin
 qtdtot = 0;
 qtdtab = 0;
 qtdreg = 0;


 for select rdb$relation_name
   from rdb$relations
   where rdb$flags = 1 and rdb$view_blr is null
   order by 1
   into :tabela do
 begin
   qtdtab = qtdtab + 1;

   comando = 'delete from ' || :tabela;

   execute statement :comando;

   suspend;
 end
 tabela = :qtdtab;
suspend;
end




Mais detalhes sobre a lista de discussão lista