Ne faites pas de requêtes dynamiques en créant des chaînes et en les exécutant.
Utilisez sp_executesql
et passer les paramètres en tant que paramètres.
Vous constaterez que l'injection sql n'est plus.
MODIFIER :désolé, j'étais pressé et j'ai écrit la mauvaise commande. ce n'est pas sp_execute, c'est sp_executesql; il prend une chaîne et un ensemble de paramètres :tout l'encodage et l'échappement des paramètres sont effectués par SQL Server.
EDIT2 :explication de l'instruction sp_executesql