Je souhaite utiliser le mot clé like
dans une requête paramétrée dynamique. Je veux protéger ma requête des injections SQL, donc je ne veux pas passer la valeur, mais je veux passer mes critères lors de l'exécution de la requête,LIKE dans les requêtes dynamiques
Y a-t-il un moyen de le faire?
SELECT
ComposeMail.ID,
ComposeMail.DateTime,
ComposeMail.Subject,
ComposeMail.CreatedBy,
ComposeMail.ReceiverStatus,
Users.Name,
ROW_NUMBER() OVER(ORDER BY '+ @p_SortExpression +') AS Indexing
FROM
ComposeMail
INNER JOIN
Users
ON
ComposeMail.CreatedBy = Users.ID
WHERE
([email protected])
AND (
ReceiverStatus=3
OR ReceiverStatus=4
)
AND (
(Subject Like ''%' + @p3 + '%'')
OR (Body Like ''%' + @p3 + '%'')
OR (Name Like ''%' + @p3 + '%'')
)
Ceci est ma chaîne de requête dynamique. Je ne veux pas passer la valeur ici.
Ceci est très bien pour les clauses LIKE, mais malheureusement vous ne pouvez pas utiliser cette technique pour paramétrer le ORDER BY expression de la question. – LukeH