Bonjour à tous, j'ai une question à poser au niveau de la construction de requête dynamique.

Imaginer une page de liste avec un formulaire de recherche. Selon ce qui est sélectionné dans ce formulaire, on construit notre WHERE.

On appelle ensuite notre procédure stockée qui fait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
ecexute('SELECT * FROM TOTO WHERE (' + @requete + ')')
Ca marche très bien. Sauf que ca fou en l'air toute l'optimisation des clés et index de SQL. En effet, a cause du exécute, la requête est recalculé a chaque fois.

Résultat on se retrouve avec des performances pourris par ce système pourtant bien pratique.

La seule autre solution consisterais à faire passer à la requête les X paramètres du where et de gruger en faisant qq chose du genre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE ((toto=@toto or @toto=''))
Si qq'un voit qq chose de mieux, je suis donc à l'écoute car nous sommes actuellement dans une impasse.