A única maneira, sem construir consultas dinamicamente, é codificar em cada combinação e escolher a que você deseja.
Se o nome da tabela for um parâmetro para um procedimento armazenado, isso pode estar em blocos IF. Mas parece desajeitado.
Se os campos de cada tabela forem iguais, você pode unir as tabelas e selecionar uma delas...
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'
Se os campos forem diferentes em cada tabela, você pode estar interessado apenas em um subconjunto dos campos...
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
Ou você pode passar NULLs para campos que não existem na tabela de origem...
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