No haga consultas dinámicas creando cadenas y ejecutándolas.
Usa sp_executesql
y pasar parámetros como parámetros.
Descubrirá que la inyección de sql ya no existe.
EDITAR :lo siento, estaba apurado y escribí el comando equivocado. no es sp_execute, es sp_executesql; toma una cadena y un conjunto de parámetros:SQL Server realiza toda la codificación y el escape de los parámetros.
EDITAR2 :explicación de la instrucción sp_executesql