Tem como obter todos os nomes das tabelas de um banco???
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
Como faço para obter todos os nomes das tabelas de um banco de dados firebird??
agradeço muito a atenção..
Cabelo
Cabelo
Curtidas 0
Respostas
Vinicius2k
14/06/2004
Colega,
Use uma query com a seguite instrução :
Espero ter ajudado...
T+
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
Afarias
14/06/2004
...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+
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
Vinicius2k
14/06/2004
:oops:
bem mais simples sem distinct e sub-select... postando e aprendendo...
é por isso q eu adoro este lugar ! :D
bem mais simples sem distinct e sub-select... postando e aprendendo...
é por isso q eu adoro este lugar ! :D
GOSTEI 0
Afarias
14/06/2004
é por isso q eu adoro este lugar ! :D
eu tb! ;)
T+
GOSTEI 0
Adrinei
14/06/2004
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.
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