Zde nevidíte důvod používat dynamické SQL. Když uděláte potřebujete použít dynamické SQL, měli byste zvážit sp_executesql vyšší přednost než EXEC() . Existuje celá řada důvodů, včetně:
-
sp_executesqlje pravděpodobnější, že znovu použije plány dotazů (viz Dynamické SQL - EXEC(@SQL) versus EXEC SP_EXECUTESQL(@SQL) ); -
je mnohem snazší předat silně zadané parametry do
sp_executesql(zmaření vkládání SQL lepší než zřetězení řetězce); a -
můžete také získat proměnné z dynamického rozsahu SQL zpět do rozsahu volání, například:
To není příliš užitečný příklad, ale je to běžný problém při provádění dynamických řetězců. Ale více k věci, o dynamickém SQL byste měli uvažovat pouze tehdy, když musíte, nikoli jako první možnost.