SQL động là cách duy nhất để làm điều này, nhưng tôi sẽ xem xét lại kiến trúc của ứng dụng của bạn nếu nó yêu cầu điều này. SQL không giỏi về mã "tổng quát hóa". Nó hoạt động tốt nhất khi được thiết kế và mã hóa để thực hiện các tác vụ riêng lẻ.
Chọn từ TableA không giống như chọn từ TableB, ngay cả khi các câu lệnh select trông giống nhau. Có thể có các chỉ mục khác nhau, kích thước bảng khác nhau, phân phối dữ liệu, v.v.
Bạn có thể tạo các thủ tục được lưu trữ riêng của mình, đây là một cách tiếp cận phổ biến. Có một trình tạo mã tạo ra các thủ tục được lưu trữ chọn lọc khác nhau cho các bảng mà bạn cần. Mỗi bảng sẽ có (các) SP riêng, sau đó bạn có thể liên kết vào ứng dụng của mình.
Tôi đã viết các loại trình tạo này bằng T-SQL, nhưng bạn có thể dễ dàng làm điều đó với hầu hết các ngôn ngữ lập trình. Đó là những thứ khá cơ bản.
Chỉ cần nói thêm một điều nữa là vì Scott E đã đưa ra các ORM ... bạn cũng có thể sử dụng các quy trình được lưu trữ này với các ORM phức tạp nhất.