J'écris un client Silverlight qui interagit avec une base de données SQL via les services Web ASP.NET 2.0, que je développe également. L'un des services doit renvoyer les résultats d'une procédure stockée et cela fonctionne bien. Toutefois, un paramètre de la procédure stockée doit être extrait d'un emplacement différent avant que la procédure stockée puisse être exécutée et cette demande supplémentaire à la base de données entraîne un ralentissement évident (évident lorsque je cache la valeur récupérée plutôt que de l'obtenir tous les appels).Comment récupérer une valeur et l'utiliser dans une procédure stockée dans une requête SQL?
Malheureusement, la mise en cache de la valeur n'est pas valide pour ma situation et je préfère combiner la récupération de cette valeur et l'exécution de la procédure stockée suivante en une seule requête afin que le serveur puisse optimiser la requête. Cependant, mon SQL n'est pas fort et je n'ai pas la moindre idée de la façon dont j'y vais.
La valeur, appelons-la tasktype
, est référencée via une seule clé, id
. La procédure stockée, getrecords
, prend quelques arguments dont tasktype
, mais on peut supposer que les autres valeurs d'argument sont connues au moment de l'appel de la requête. La procédure stockée renvoie une table d'enregistrements.
Merci pour toute aide.
Utilisez-vous un sproc scalaire pour obtenir la valeur pour tasktype? –
La valeur de tasktype est obtenue via une requête SQL régulière. Il n'y a actuellement aucune procédure stockée pour cela. –