Dans une procédure stockée, j'ai besoin d'obtenir le nombre de résultats d'une autre procédure stockée. Plus précisément, j'ai besoin de savoir si elle renvoie des résultats, ou un ensemble vide.Quel est le moyen le plus efficace de compter les résultats d'une procédure stockée, à partir d'une autre procédure stockée?
Je peux créer une variable de table/table temporaire, y exécuter la procédure stockée, puis exécuter un compte select sur ces données. Mais je ne me soucie pas vraiment des données elles-mêmes, tout ce dont j'ai besoin est le nombre (ou la présence/absence de données). Je me demandais s'il existait un moyen plus efficace d'obtenir cette information.
Je ne veux pas simplement copier le contenu de l'autre procédure stockée et le réécrire en tant que compte de sélection. La procédure stockée change trop fréquemment pour que cela soit possible.
En fait, je ne pense pas que ce soit une bonne idée. Parce que la valeur de retour a int type et vous ne pouvez pas passer un bigint avec elle.Donc, dans le cas où vous avez une table avec des millions d'enregistrements avec une clé primaire bigint, votre solution pourrait être en danger et cela ne fonctionne tout simplement pas. En plus, je dois dire que la définition de la valeur de retour en sql est juste de rapporter le résultat d'une opération et rien d'autre (comme les énumérations en C# il devrait toujours avoir des valeurs spécifiques). Il est probablement préférable d'utiliser les paramètres de sortie pour faire une telle chose ou comme notre ami l'a déjà dit, utilisez la variable @@ RowCount. Salutations – Rikki