Comment puis-je exécuter une procédure stockée une fois pour chaque ligne retournée par la requête?

J'ai une procédure stockée qui modifie les données de l'utilisateur dans une certaine manière. Je le passe user_id et il le fait de la chose. Je veux exécuter une requête sur une table, puis pour chaque user_id je trouve exécuter la procédure stockée une fois sur que user_id

Comment pourrais-je écrire des requêtes pour cet?

  • Vous devez spécifier quel SGBDR - la réponse sera différente pour SQL Server, Oracle, MySql, etc.
  • Les Chances sont que vous n'avez pas besoin d'une procédure stockée à tous. Pouvez-vous décrire "ce que" la procédure stockée n', exactement? Peut-être l'ensemble du processus peut être exprimée comme une seule instruction de mise à jour. "Le faire une fois pour chaque enregistrement" modèle doit généralement être évitée, si possible.
  • La base de données utilisez-vous?
  • Il est préférable si vous pouvez éviter cela. La plupart des bases de données optimisé pour le jeu en fonction des actions, et la mise en boucle à l'aide d'un curseur sera relativement lente. Cela dit, voici un bon exemple pour savoir comment faire cela à l'aide de SQL Server
  • Vous devriez lire cet article... article 2 dit de NE PAS utiliser des curseurs codeproject.com/KB/database/sqldodont.aspx...mind je suis aussi contre l'optimisation prématurée.
  • codeproject.com/KB/database/sqldodont.aspx essayer de nouveau
  • Si vous lisez plus loin dans ce mal écrit l'article, vous verrez que le point 10 est "de NE PAS utiliser des curseurs côté serveur, Sauf si vous savez ce que vous faites." Je pense que c'est un cas de "je sais ce que je fais".
  • devrait être votre manière préférée de tuer les performances du système tout entier." Hilarant. Je veux dire, correspond à mon cas d'utilisation exactement.

InformationsquelleAutor MetaGuru | 2009-05-20