L'injection SQL consiste essentiellement à ajouter du code supplémentaire à la requête. L'attaque elle-même se produit car le serveur analyse les données d'entrée sous forme de code SQL et les exécute en conséquence. Vous ne pouvez pas vous en protéger au niveau SP, car lorsque l'exécution arrive à la procédure, l'attaque a déjà réussi.
Ainsi, tant que vous construisez vos requêtes sous forme de texte, l'injection SQL est possible quel que soit le texte de la requête. Et si vous ne le faites pas, ou si vous nettoyez correctement votre entrée, là encore, l'injection SQL ne devrait pas poser de problème, que ce soit SELECT ou autre chose.