Heute wollte ich eine Firebird Datenbank unter .NET dazu bewegen mir zu verraten welche Tabellen sie enthält. Klingt nach einer lösbaren Aufgabe. Naja aber nicht alles was möglich ist muss auch einfach sein. Laut SQL Standard (ich glaube der 2003er) müsste folgendes möglich sein:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
Diese Anfrage liefert mir eine Liste der Tabellen in der Datenbank. Der Haken an der Sache? Firebird unterstützt dies bis dato nicht. Also musste eine andere Möglichkeit her. Zum Glück besitzt auch Firebird Metatabellen. Damit sieht das ganze dann so aus:
SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0;
Das ganze habe ich auf der Seite http://www.alberton.info/ gefunden, wo es noch mehr Tips zu den unterschiedlichsten Datenbanken gibt.