Cette procédure stockée ne fonctionne pas. J'ai vérifié le SQL et il renvoie la valeur correcte lorsqu'elle est analysée directement sur la DB. C'est vraiment étrange! Il retourne juste 0 rangées.
Qu'est-ce qui pourrait être faux? P>
ALTER PROCEDURE dbo.GetSaltOfUser ( @eMail nvarchar ) AS DECLARE @result nvarchar /* SET NOCOUNT ON */ BEGIN SELECT @result = salt FROM UserSet WHERE eMail = @eMail RETURN @result END
3 Réponses :
DECLARE @salt nvarchar(50) EXECUTE dbo.GetSaltOfUser N'abc@example.com', @salt OUTPUT SELECT @salt
Oh c'est simple? Merci, j'ai de la chance que je me suis heurté au début du projet.
Et pour répondre à votre question; Il est correct que je cherchais le paramètre de sortie. Est-il préférable de toujours avoir un paramètre de sortie, même si la commande est assez simple?
@Phil - Oui. Je crois qu'un paramètre code> de sortie code> est plus léger que celui d'une sélection scalaire.
Vous n'avez pas besoin d'attribuer le sel code> à une variable.
CREATE PROCEDURE dbo.GetSaltOfUser
(
@eMail nvarchar
)
AS
BEGIN
SELECT salt
FROM UserSet
WHERE eMail = @eMail
END
Comme il semble que je ne peux pas retourner un var car il doit être un entier? Cela s'applique-t-il uniquement à la commande "retour"?
Il retournera sel code> dans n'importe quel type de données. Vous pourriez lancer cela comme tout ce que vous voulez, avec portée évidemment.
Cast (sel comme nvarchar (50)) en sel code>
deux cents de ma fin p>
D'où je l'écris dans Visual Studio. J'ai le droit de cliquer avec le bouton droit de la souris et choisissez Exécuter.
Comment déterminez-vous la valeur de retour?
WTH, qu'est-ce que la balise OOPS? Je devrais avoir cela sur toutes mes questions .. "Oups, je ne savais pas assez" :)