Die einzige Möglichkeit, ohne Abfragen dynamisch zu erstellen, besteht darin, jede Kombination fest zu codieren und die gewünschte auszuwählen.
Wenn der Tabellenname ein Parameter für eine gespeicherte Prozedur ist, kann dies in IF-Blöcken sein. Aber es fühlt sich klobig an.
Wenn die Felder aus jeder Tabelle gleich sind, können Sie die Tabellen zusammenführen und daraus auswählen...
CREATE VIEW myUnifiedStructure AS
SELECT 'Table1' AS tableName, * FROM Table1
UNION SELECT 'Table2' AS tableName, * FROM Table2
UNION SELECT 'Table3' AS tableName, * FROM Table3
-- etc
SELECT * FROM myUnifiedStructure WHERE tableName = 'Table1'
Wenn die Felder in jeder Tabelle unterschiedlich sind, interessiert Sie möglicherweise nur eine Teilmenge der Felder...
CREATE VIEW myUnifiedStructure AS
SELECT 'Table1' AS tableName, field1 AS field1, field4 AS field2 FROM Table1
UNION SELECT 'Table2' AS tableName, field2 AS field1, field3 AS field2 FROM Table2
UNION SELECT 'Table3' AS tableName, field2 AS field1, field4 AS field2 FROM Table3
-- etc
Oder Sie können NULL-Werte für Felder übergeben, die in der Quelltabelle nicht vorhanden sind...
CREATE VIEW myUnifiedStructure AS
SELECT 'Table1' AS tableName, NULL AS field1, field2 AS field2 FROM Table1
UNION SELECT 'Table2' AS tableName, field1 AS field1, field2 AS field2 FROM Table2
UNION SELECT 'Table3' AS tableName, field1 AS field1, NULL AS field2 FROM Table3
-- etc