Dynamisk SQL er den eneste måde at gøre dette på, men jeg ville genoverveje arkitekturen af din applikation, hvis den kræver dette. SQL er ikke særlig god til "generaliseret" kode. Det fungerer bedst, når det er designet og kodet til at udføre individuelle opgaver.
At vælge fra Tabel A er ikke det samme som at vælge fra Tabel B, selvom udvalgte sætninger ser ens ud. Der kan være forskellige indekser, forskellige tabelstørrelser, datafordeling osv.
Du kan generere dine individuelle lagrede procedurer, hvilket er en almindelig tilgang. Har en kodegenerator, der opretter de forskellige udvalgte lagrede procedurer for de tabeller, du har brug for. Hver tabel ville have sine egne SP(er), som du så kunne linke til din applikation.
Jeg har skrevet den slags generatorer i T-SQL, men du kunne sagtens gøre det med de fleste programmeringssprog. Det er ret grundlæggende ting.
Bare for at tilføje en ting mere, siden Scott E bragte ORM'er op... du burde også være i stand til at bruge disse lagrede procedurer med de fleste sofistikerede ORM'er.