L'exécution de la Procédure Stockée via sp_executesql
Je suis tentative d'exécution d'une Procédure Stockée dans une autre procédure stockée. Le hic, c'est que le nom de la procédure stockée est construit dynamiquement à l'intérieur de la première procédure. Voici un exemple de ce que je suis en train de faire ...
CREATE PROCEDURE SPINSVALUE_12345
@guid uniqueidentifier
AS
DECLARE @returnValue bit
DECLARE @spToExec NVARCHAR(255)
SET @returnValue = 0
WHILE (@returnValue=0)
BEGIN
SET @spToExec = 'SPINSVALUE_' + REPLACE(@guid, '-', '_')
... DO OTHER STUFF ...
EXEC sp_executeSQL @spToExec, N'@returnValue BIT OUTPUT', @returnValue OUTPUT
END
END
Je n'arrive pas à obtenir le sp_executeSQL de travail. Est-il possible d'exécuter une procédure stockée de cette façon, et obtenir une valeur du paramètre de SORTIE?
OriginalL'auteur Scott Vercuski | 2009-01-20
Vous devez vous connecter pour publier un commentaire.
ne le proc retourner une valeur ou une valeur de sortie?
voici un exemple
BTW, je pense que c'est une mauvaise idée d'avoir de nombreux procs que faire la même chose, peut-être vous avez besoin de refactoriser
Je réalise que c'est ancien mais je suis tombé sur cette même question, et je n'ai pas pu trouver beaucoup d'aide via Google. Dans le cas où quelqu'un d'autre tombe sur ce post, voici ce qu'a fait le tour pour moi... assurez-vous d'ajouter la liste des paramètres de la chaîne SQL ainsi que l'appel sp_executesql. Si vous souhaitez ajouter
+ ' @intTableCount = @intTableCount'
juste après' + @chvTableName'
OriginalL'auteur SQLMenace
essayez ceci:
OriginalL'auteur JoshBerke
Je voudrais ajouter à SQLMenace de réponse. Sa réponse m'a aidé à avancer dans la bonne direction. Dans le cas où les paramètres sont requis pour la procédure, ils doivent être déclarés dans la déclaration de paramètre.
La valeur de 10 est de retour dans cette affaire.
Paramètres peuvent être définis à l'aide de leurs noms (utilise les noms de l' @params liste ) pour éviter la confusion quand il y a beaucoup.
OriginalL'auteur jhamm
Désolé pour le retard :D, le code suivant fonctionne parfaitement (Pour N.. de sortie et des paramètres d'entrée) s'il vous plaît essayez ceci (source):
OriginalL'auteur Gaston Flores
OriginalL'auteur Viral Prajapati