De enige manier, zonder dynamisch query's op te bouwen, is door in elke combinatie hard te coderen en degene te kiezen die je wilt.
Als de tabelnaam een parameter is voor een opgeslagen procedure, kan dit in IF-blokken zijn. Maar het voelt onhandig aan.
Als de velden van elke tabel hetzelfde zijn, kunt u de tabellen samenvoegen en daaruit selecteren...
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'
Als de velden in elke tabel anders zijn, bent u mogelijk alleen geïnteresseerd in een subset van de velden...
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
Of u kunt NULL's doorgeven voor velden die niet bestaan in de brontabel...
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