Hi If you join with contraints you have better control. An personally i prefere easier way, like simple select. If you really need to delete all instead of PK and FK you should not exclude uniques as you ommit custom unique indexes.
SELECT 'DROP INDEX ' || TRIM(I.RDB$INDEX_NAME) || ';', RC.RDB$CONSTRAINT_TYPE FROM RDB$INDICES I LEFT JOIN RDB$RELATION_CONSTRAINTS RC ON RC.RDB$CONSTRAINT_NAME = I.RDB$INDEX_NAME WHERE I.RDB$SYSTEM_FLAG <> 1 AND RC.RDB$CONSTRAINT_TYPE NOT IN ('PRIMARY KEY', 'FOREIGN KEY') –eventually add also ‘UNIQUE’ here if you really need regards, Karol Bieniaszewski