2010-09-16 12 views
0

J'ai écrit la procédure stockée qui a 2 requêtes d'insertion et 1 requête de mise à jour à l'intérieur. De tous ces éléments, des requêtes d'insertion ou des requêtes de mise à jour sont exécutées à la fois. Maintenant, mon problème est d'obtenir ROWCOUNT dans chaque cas. Supposons que si les opérations d'insertion sont exécutées, je veux que la procédure stockée renvoie @@ROWCOUNT à l'application appelante, afin que l'application sache si les opérations requises sont exécutées correctement ou non. Quelqu'un peut-il suggérer/me dire comment puis-je obtenir les lignes affectées par la procédure stockée?Comment une procédure stockée peut-elle renvoyer ROWCOUNT?

+0

Si vous voulez @@ ROWCOUNT, pourquoi ne pas le renvoyer? – driis

Répondre

0

Utilisez les paramètres de sortie dans vos procédures stockées pour renvoyer le RowCount de vos insertions/mises à jour.

Refer MSDN link for more information sur la façon d'utiliser la sortie params

Vous pouvez avoir plusieurs params de sortie de sorte que vous pouvez avoir deux sorties différentes params un chacun pour votre insert et le 3ème pour votre déclaration de mise à jour.

Exemple:

CREATE PROCEDURE GetEmployeeData 
    @employeeID INT, 
    @managerID INT **OUTPUT** 
AS 
BEGIN 
.... 
.... 

De plus, vous pouvez toujours concaténer les rowcounts de votre 2 insertions/Mise à jour à l'aide délimiteurs et les retourner comme une valeur, par exemple: « 10; 0 » - Mais qui est l'ancienne et "Je ne recommanderais pas" approche.

En outre, vous pouvez créer une variable de table et renvoyer la table avec rows = nombre d'insertions/mises à jour et la valeur de la colonne = RowCount affecté.