Initialiser les paramètres de sortie de la procédure stockée
J'ai une procédure stockée avec un paramètre de sortie que j'initialise avec "0":
ALTER PROCEDURE dbo.SomeProcedure
@someparam INT = 0 OUT
...
Toutefois, lorsque la procédure ne permet pas de modifier ou de définir ce paramètre lors de l'exécution, la valeur de sortie est NULLE, pas de "0" comme prévu.
Est-il obligatoire de définir la valeur par défaut dans le code de procédure
SET @someparam = 0;
et d'éviter l'initialisation dans la déclaration?
Pourquoi SQL Server permet de valeurs par défaut dans la déclaration pour les paramètres de sortie alors?
Le par défaut valeurs entrant direction uniquement, vous pouvez fournir une valeur par défaut pour la valeur dans la procédure. Ils n'ont aucun effet sur la SORTIE côté des choses ... c'est juste la façon dont il est
OriginalL'auteur net_prog | 2012-11-14
Vous devez vous connecter pour publier un commentaire.
La syntaxe de vous montrer, c'est pas pour initialisation, est pour valeurs par défaut pour les paramètres manquants:
Alors il devrait être clair que, si vous pouvez lire la valeur de sortie, il doit être le cas que vous êtes en fournissant un paramètre pour @someparam et, par conséquent, il n'est pas "disparus". Si ce n'est pas "disparus", alors il n'est pas attribué une valeur par défaut, car il doit déjà avoir une valeur, celle de votre appelant cadre (probablement NULLE). CQFD.
Le code suivant montre la différence et illustre bien le comportement que vous voyez:
OriginalL'auteur Remus Rusanu