Od toho je testování. Ať už unit testy nebo regresní testy.
Pokud se vyhnu dynamickému SQL, tak poměrně snadno mohu otestovat syntaktickou správnost všech SQL dotazů, které se vyskytují v aplikaci. Dynamické SQL není testovatelné.
Samozřejmě, že tu proti sobě jdou dvě strategie - úspora kódu X efektivitě a bezpečnosti. Souhlasím, můžete udělat chybu. Na druhou stranu - dynamické SQL Vás před chybami neochrání - testovat musíte tak jako tak - a navíc riskujete děravost aplikace.
Jedna věc je, když píšete lokální z internetu nedostupné aplikace - riziko SQL injektáže není až tak velké. Jen riskujete, že Vám uživatelé vygenerují pomalý dotaz, což patrně přežijete. Psát dobré internetové aplikace ovšem vyžaduje docela dost znalostí - pohybujete se v mnohem rizikovějším prostředí a přetížit SQL server náporem uživatelů je mnohem menší problém - tudíž web s trochou větší návštěvností je mnohem lépe optimalizován než typické vnitropodnikové aplikace.