Paramétrer l'input en utilisant le server sql?

Je veux paramétrer l'input de ma procédure stockée pour empêcher l'injection de sql. Le problème est que ma database n'a pas d'application (c'est juste pour l'école) et comme il n'y a pas de langage client comme C # etc, je dois le faire avec SQL lui-même. j'ai fait ça

ALTER procedure [dbo].[drop_tt] @ss varchar(40) as EXEC sp_executesql N'SELECT * FROM tt whERE ss = @Ss', N'@ss varchar(40)', @ss 

mais quand j'exécute cette déclaration, la table tt a été supprimée 🙁 exec drop_tt 'www'; drop table tt– '

Quelqu'un peut-il aider?

En bref: pourquoi changez-vous sp? vous avez juste besoin de créer une procédure stockée paramétrée comme:

 CREATE PROCEDURE uspGetAddress @City nvarchar(30) AS SELECT * FROM AdventureWorks.Person.Address WHERE City = @City GO 

Il suffit de regarder ce tutoriel très simple , vous n'avez pas besoin de modifier vos procédures.

Edit: mon approche serait de se débarrasser de l'instruction EXEC sp_executesql et de la dénomination qui commence par drop . Essayez simplement de simplifier votre instruction d'exécution de procédure stockée dans le corps.