Dynamické SQL je jediný způsob, jak toho dosáhnout, ale pokud to vyžaduje, přehodnotil bych architekturu vaší aplikace. SQL není příliš dobrý v "generalizovaném" kódu. Funguje nejlépe, když je navržen a nakódován pro provádění jednotlivých úkolů.
Výběr z tabulky A není totéž jako výběr z tabulky B, i když příkazy select vypadají stejně. Mohou existovat různé indexy, různé velikosti tabulek, distribuce dat atd.
Můžete generovat své jednotlivé uložené procedury, což je běžný přístup. Mějte generátor kódu, který vytvoří různé vybrané uložené procedury pro tabulky, které potřebujete. Každá tabulka by měla své vlastní SP, které byste pak mohli propojit se svou aplikací.
Napsal jsem tyto druhy generátorů v T-SQL, ale můžete to snadno udělat s většinou programovacích jazyků. Je to docela základní věc.
Abychom dodali ještě jednu věc, protože Scott E představil ORM... měli byste být schopni používat tyto uložené procedury i s nejsofistikovanějšími ORM.