SQL injection je v podstatě přidání dalšího kódu do dotazu. K samotnému útoku dochází, protože server analyzuje vstupní data jako kód SQL a podle toho je provede. Nemůžete se před ním chránit na úrovni SP, protože když se provedení dostane do procedury, útok již byl úspěšný.
Pokud tedy vytváříte své dotazy jako text, je vkládání SQL možné bez ohledu na to, jaký je text dotazu. A pokud to neuděláte, nebo pokud svůj vstup řádně vyčistíte, pak by opět neměl být problém s injekcí SQL, ať už je to SELECT nebo něco jiného.