Cách duy nhất mà không cần tạo các truy vấn động, là viết mã cố định trong mọi tổ hợp và chọn ra kết hợp bạn muốn.
Nếu tên bảng là một tham số của một thủ tục được lưu trữ, thì nó có thể nằm trong các khối IF. Nhưng nó cảm thấy rắc rối.
Nếu các trường từ mỗi bảng giống nhau, bạn có thể kết hợp các bảng lại với nhau và chọn từ những trường đó ...
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'
Nếu các trường trong mỗi bảng khác nhau, bạn có thể chỉ quan tâm đến một tập hợp con của các trường ...
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
Hoặc bạn có thể chuyển bằng NULL cho các trường không tồn tại trong bảng nguồn ...
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