Declare scalar variable

0

I have the following sql code

CREATE PROCEDURE AddUsuario
@uNombre NVARCHAR(50), 
@uPass NVARCHAR(50), 
@responseMessage NVARCHAR(250) OUTPUT
AS
BEGIN
SET NOCOUNT ON

BEGIN TRY

    INSERT INTO usuario (id, nombre, pass, fecha_alta)
    VALUES(newid(),@uNombre, HASHBYTES('SHA2_512', @uPass),getdate())

    SET @responseMessage='Usuario agregado.'

END TRY
BEGIN CATCH
    SET @responseMessage=ERROR_MESSAGE() 
END CATCH

END

that is obviously to register a user, the problem is to execute the stored process I do it with the following code:

DECLARE @responseMessage NVARCHAR(250)
EXEC AddUsuario
      @uNombre = N'Admin',
      @uPass = N'123',
      @responseMessage=@responseMessage OUTPUT

Mark that I must declare the variable @responseMessage

Mens. 137, Nivel 15, Estado 2, Línea 4
Debe declarar la variable escalar "@responseMessage".
    
asked by david arellano 17.03.2018 в 08:09
source

1 answer

0

Try this

    DECLARE @return_value int,
            @responseMessage nvarchar(250)

    EXEC    @return_value = [dbo].[AddUsuario]
            @uNombre = N'Admin',
            @uPass = N'123',
            @responseMessage = @responseMessage OUTPUT

    SELECT  @responseMessage as N'@responseMessage'

    SELECT  'Return Value' = @return_value

    GO
    
answered by 17.03.2018 в 08:40