Fórum Tem como obter todos os nomes das tabelas de um banco??? #44849

14/06/2004

0

Caros Colegas..

Como faço para obter todos os nomes das tabelas de um banco de dados firebird??

agradeço muito a atenção..

Cabelo


Cabelo

Cabelo

Responder

Posts

14/06/2004

Vinicius2k

Colega,

Use uma query com a seguite instrução :
select distinct RDB$RELATION_NAME from RDB$RELATION_FIELDS
where ( RDB$SYSTEM_FLAG = 0 or RDB$SYSTEM_FLAG is null) and
        not RDB$RELATION_NAME in (select RDB$VIEW_NAME from RDB$VIEW_RELATIONS
      )


Espero ter ajudado...
T+


Responder

Gostei + 0

14/06/2004

Afarias

...ou...


SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE RDB$SYSTEM_FLAG = 0 or RDB$SYSTEM_FLAG is null


e pra não ver as VIEWS ::


SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE (RDB$SYSTEM_FLAG = 0 or RDB$SYSTEM_FLAG is null)
AND RDB$VIEW_BLR IS NULL;


T+


Responder

Gostei + 0

14/06/2004

Vinicius2k

:oops:
bem mais simples sem distinct e sub-select... postando e aprendendo...
é por isso q eu adoro este lugar ! :D


Responder

Gostei + 0

15/06/2004

Afarias

é por isso q eu adoro este lugar ! :D


eu tb! ;)


T+


Responder

Gostei + 0

30/12/2005

Adrinei

Eu constumo utilizar essa procedure que chamei de ´stat´

CREATE PROCEDURE PRC_STAT
RETURNS (
QTD_REG INTEGER,
TABELA VARCHAR(31))
AS
DECLARE VARIABLE QTDTAB INTEGER = 0;
DECLARE VARIABLE QTDTOT INTEGER = 0;
DECLARE VARIABLE COMANDO VARCHAR(100);
BEGIN
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=´SELECT COUNT(*) FROM ´ || :TABELA;
EXECUTE STATEMENT :COMANDO INTO :QTD_REG;
QTDTOT=:QTDTOT+:QTD_REG;
SUSPEND;
END
TABELA=´Total de tabelas: ´ || :QTDTAB;
QTD_REG=:QTDTOT;
SUSPEND;
END^

Além de ela trazer os nomes, carrega também a quantidade de registros em cada tabela. Abraço.


Responder

Gostei + 0

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

Aceitar