Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Cuantos registros tienen las tablas de una BD (https://www.clubdelphi.com/foros/showthread.php?t=96276)

igui 22-06-2023 17:24:57

Cuantos registros tienen las tablas de una BD
 
Estoy necesitando construir un SQL para saber cuantos registros tienen las tablas de una BD Interbase

He intentado con este pero me marca error

Código SQL [-]
SELECT DISTINCT "RDB$RELATION_FIELDS"."RDB$RELATION_NAME" AS TABLAS,
(SELECT COUNT(*) FROM "RDB$RELATION_FIELDS"."RDB$RELATION_NAME") AS NROREG
FROM "RDB$RELATION_FIELDS" "RDB$RELATION_FIELDS"
WHERE NOT RDB$FIELD_NAME STARTING WITH 'RDB$'

cloayza 22-06-2023 23:37:49

Estimado, podría ser así
Código SQL [-]
create or alter procedure ALL_RECORD_TABLES
returns (
    tablename varchar(63),
    recorcount integer)
as
BEGIN
  FOR
    select distinct
       RF.RDB$RELATION_NAME
    FROM RDB$RELATIONS RF
    WHERE (RF.rdb$relation_type= 0) and
          (RF.rdb$system_flag= 0)
    INTO :TABLENAME
  DO
  BEGIN
       EXECUTE STATEMENT 'SELECT COUNT(*) FROM '||:TABLENAME
       INTO :RECORCOUNT;

       SUSPEND;
  END
END

Saludos cordiales

manelb 23-06-2023 08:44:46

Yo lo hago como Cloayza, pero con una pequeña variación para no tener que crear un procedimiento almacenado y poderlo lanzar como una simple consulta sql:

Código SQL [-]
execute block
RETURNS (
    TABLA VARCHAR(31),
    CANTIDAD INTEGER)
AS
Begin
  /* spRegistros.  Procedimiento almacenado para obtener la cantidad de
     registros que contiene cada una de las tablas de la base de datos. */

  For Select RDB$Relation_Name From RDB$Relations
  Where (RDB$System_Flag = 0) And (RDB$View_BLR Is Null)
  Order By RDB$Relation_Name Into :Tabla Do
  Begin
    Execute Statement 'Select Count (*) From ' || :Tabla Into :Cantidad;
    Suspend;
  End
End

Saludos a todos


La franja horaria es GMT +2. Ahora son las 11:08:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi