2016-02-16 1 views
4

Есть ли быстрый способ перечислить все домены Firebird, определенные для базы данных, которые фактически не используются никаким полем? У меня есть большая база данных со многими таблицами и многими доменами, и кажется, что многие из них больше не используются, поэтому я думаю, что пришло время для очистки!Список всех неиспользуемых доменов для базы данных Firebird

Я думаю, что это возможно, запросив системные таблицы RDB$..., но я не уверен, как это сделать.

ответ

4
SELECT 
    f.rdb$field_name 
FROM 
    rdb$fields f 
    LEFT JOIN rdb$relation_fields rf 
    ON rf.rdb$field_source = f.rdb$field_name 
WHERE 
    rf.rdb$field_name IS NULL 
    AND 
    COALESCE(f.rdb$system_flag, 0) = 0 
+0

Спасибо! Не могли бы вы просто сказать мне, почему в результате запроса есть некоторые «неназванные» домены («RDB $ 5», «RDB $ 9» и т. Д.)? Откуда они ? Кажется, что они являются доменом по умолчанию для существующих таблиц, но как их можно считать «неиспользованными»? –

+1

Возможно, это домены для значений выходных данных хранимых процедур. –

+2

Вы можете добавить подобное соединение +, где условие «RDB $ PROCEDURE_PARAMETERS' –

Смежные вопросы