Fórum Tem como obter todos os nomes das tabelas de um banco??? #44849
14/06/2004
0
Como faço para obter todos os nomes das tabelas de um banco de dados firebird??
agradeço muito a atenção..
Cabelo
Cabelo
Curtir tópico
+ 0Posts
14/06/2004
Vinicius2k
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+
Gostei + 0
14/06/2004
Afarias
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+
Gostei + 0
14/06/2004
Vinicius2k
bem mais simples sem distinct e sub-select... postando e aprendendo...
é por isso q eu adoro este lugar ! :D
Gostei + 0
15/06/2004
Afarias
eu tb! ;)
T+
Gostei + 0
30/12/2005
Adrinei
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)