L'iniezione SQL consiste, in pratica, nell'aggiunta di codice aggiuntivo alla query. L'attacco stesso si verifica perché il server analizza i dati di input come codice SQL e li esegue di conseguenza. Non puoi proteggerlo a livello SP, perché quando l'esecuzione arriva alla procedura, l'attacco è già riuscito.
Quindi, fintanto che costruisci le tue query come testo, l'iniezione SQL è possibile indipendentemente dal testo della query. E se non lo fai, o se sanifichi correttamente il tuo input, anche in questo caso, l'iniezione SQL non dovrebbe essere un problema, che si tratti di SELECT o qualcos'altro.