Dialog: SQL History for: Datenbankname
:: Bekommt offensichtlich ein weiteres Registerblatt "Querys". Toll.
Das Registerblatt ist für SYSDBA gedacht
SELECT
t.rdb$relation_name AS table_name,
t.rdb$system_flag,
CASE WHEN t.rdb$system_flag = 1 THEN 'SYSTEM TABLE'
ELSE 'USER TABLE' END AS table_type,
LIST(DISTINCT f.rdb$field_name || ' (' ||
CASE f.rdb$field_type
WHEN 7 THEN 'SMALLINT'
WHEN 8 THEN 'INTEGER'
WHEN 10 THEN 'FLOAT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 14 THEN 'CHAR'
WHEN 16 THEN 'BIGINT / INT64'
WHEN 27 THEN 'DOUBLE PRECISION'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
ELSE 'UNKNOWN'
END || ')', ', ') AS fields,
LIST(DISTINCT idx.rdb$index_name ||
' -> ' || COALESCE(idx.rdb$index_type, 0), ', ') AS indexes,
LIST(DISTINCT con.rdb$constraint_type ||
' [' || con.rdb$constraint_name || ']', ', ') AS constraints,
LIST(DISTINCT trg.rdb$trigger_name ||
' (' || trg.rdb$trigger_type || ')', ', ') AS triggers,
LIST(DISTINCT dep.rdb$depended_on_name ||
' <- ' || dep.rdb$dependent_name, ', ') AS dependencies
FROM rdb$relations t
LEFT JOIN rdb$relation_fields rf
ON t.rdb$relation_name = rf.rdb$relation_name
LEFT JOIN rdb$fields f
ON rf.rdb$field_source = f.rdb$field_name
LEFT JOIN rdb$indices idx
ON idx.rdb$relation_name = t.rdb$relation_name
LEFT JOIN rdb$relation_constraints con
ON con.rdb$relation_name = t.rdb$relation_name
LEFT JOIN rdb$triggers trg
ON trg.rdb$relation_name = t.rdb$relation_name
LEFT JOIN rdb$dependencies dep
ON dep.rdb$depended_on_name = t.rdb$relation_name
WHERE t.rdb$view_blr IS NULL
GROUP BY t.rdb$relation_name, t.rdb$system_flag
ORDER BY t.rdb$system_flag, t.rdb$relation_name;
Gruß,
Maurog.