[firebase-br] Dúvida Firebird 2.5 - Quantidade de registro de cada tabela

Kelver Merlotti kmerlotti em gmail.com
Ter Ago 9 13:53:09 -03 2016


Não sei se tem como fazer via select direto... eu faço via stored procedure:

*****
SET TERM ^ ;

create or alter procedure SP_TABLES_RECORD_COUNT
returns (
    TABELA varchar(255),
    QTDE bigint)
as
begin
  for select rdb$relation_name from rdb$relations
  where rdb$system_flag=0
  into :tabela do
  begin
    execute statement 'select count(*) from ' || :tabela into :qtde;
    suspend;
  end
end^

SET TERM ; ^
*****

E uso com um "select * from sp_tables_record_count"
[]'s,

*Kelver Merlotti*
Embarcadero MVP
Coordenador Editorial da Active Delphi
Twitter: http://www.twitter.com/kmerlotti

2016-08-09 13:31 GMT-03:00 Andre Santos <andr3.sant em gmail.com>:

> Bom dia Pessoal!
>
> Estou desenvolvendo uma ferramenta para migração de banco de dados para
> fins acadêmicos e estou com uma dúvida em relação ao Firebird.
>
> Preciso fazer um select no banco onde ele me retorna o nome de todas as
> tabelas do banco e a quantidade de registro de cada tabela.
>
> Para listar as tabelas eu já consegui, mas ainda não encontrei uma forma
> para listar a quantidade de registro de cada tabela, fazendo consulta nas
> tabelas do sistema
> para que não seja necessário realizar o *count()*.
>
>
> Consegui na internet o select abaixo, mas ele não está trazendo os valores
> correto de algumas tabelas.
>
> *SELECT RDB$RELATIONS.RDB$RELATION_NAME,*
> *CASE *
> *WHEN RDB$INDICES.RDB$STATISTICS = 0 THEN 0 *
> *ELSE CAST(1 / RDB$INDICES.RDB$STATISTICS AS INTEGER)*
> *END *
> *FROM RDB$RELATIONS *
> *LEFT JOIN RDB$RELATION_CONSTRAINTS *
> * ON RDB$RELATIONS.RDB$RELATION_NAME =
> RDB$RELATION_CONSTRAINTS.RDB$RELATION_NAME *
> * AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'*
> *LEFT JOIN RDB$INDICES *
> *  ON RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME =
> RDB$INDICES.RDB$INDEX_NAME *
> *WHERE RDB$VIEW_BLR IS NULL AND RDB$RELATION_ID >= 128 *
> *ORDER BY 1;*
>
>
>
> Alguém consegue me ajudar?
>
>
> *André Santos da Silva*
> *andr <andrews-santos em hotmail.com>3.sant em gmail.com <3.sant em gmail.com>*
> *Pense em sua responsabilidade com o meio ambiente.*
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://www.firebase.com.br/
> pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista