Mit den Schemaabfragen liegst du dich gar nicht falsch.
Mittels SchemaTables bekomst du die verfügbaren Tabellen und Schemata, über SchemaColumns zu jeder Tabelle die entsprechenden Spalten.
Wo ist also dein Problem?

Direktzugriffe auf die SYSColumns u.ä. solltest du gar nicht machen, zumal du dann ja die Schemata kennen musst.