none
Error en Stored Procedure RRS feed

  • Pregunta

  • hola 

    Estoy escribiendo un procedimiento almacenado para recuperar el ID(AccountId)  de una tabla  pero estoy confundido en la devolucion del excalar  esta linea  , si le quito los parametros me dice que faltan y si los pongo me dice que son demasiados

    soy nuevo en esto apenas aprendo

    EXEC @r = dbo.sp_Login,@par1,@par2,@Id OUTPUT ; //AQUI MARCA EL ERROR

    -- ================================================ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= CREATE PROCEDURE dbo.sp_Login @par1 VARCHAR(100) , @par2 VARCHAR(100), @Id INT OUTPUT AS BEGIN SET NOCOUNT ON; SELECT AccountId FROM ACCOUNT WHERE Email = @par1 AND Password = @par2; -- =============================================================

    DECLARE @r INT; EXEC @r = dbo.sp_Login,@par1,@par2,@Id OUTPUT ; //AQUI MARCA EL ERROR SELECT @Id AS [Id]; END GO -- =======================================================



    E M C

    miércoles, 17 de agosto de 2016 19:47

Respuestas

  • Hola E M C

    Primero creas el procedimiento almacenado. Se hizo un ajuste en @Id = AccountId

    CREATE PROCEDURE dbo.sp_Login 
    	@par1 VARCHAR(100),
    	@par2 VARCHAR(100),
    	@Id INT OUTPUT
    AS
    BEGIN
    	SET NOCOUNT ON;
    	SELECT @Id = AccountId  FROM ACCOUNT WHERE Email = @par1 AND Password = @par2;
    RETURN

    Luego, utiliza las instrucciones siguientes para ejecutar el procedimiento:

    DECLARE @r INT;
    EXECUTE dbo.sp_Login N'Par1', N'Par2',  @Id = @r OUTPUT;

    Reemplaza Par1 por el nombre de usuario y Par2 por el la contraseña. 

    Si le ha servido, vote y proponga como respuestas.

    Saludos,


    Miguel Torres


    • Editado Miguel Torres C miércoles, 17 de agosto de 2016 21:06
    • Marcado como respuesta E M C miércoles, 17 de agosto de 2016 23:41
    miércoles, 17 de agosto de 2016 21:05
  • Hola asi quedaria tu procedure

    create procedure dbo.sp_login
    @par1 varchar(100),
    @par2 varchar(100),
    @Id int output
    AS
    set nocount on;
    
    Select @Id = AccountId From ACCOUNT Where Email=@par1 And Password =@par2;
    GO

    Y para probar si funciona

    declare @id int, @r int;
    EXEC @r = dbo.sp_Login 'user', 'pass', @Id output;
    select @Id as [ID];
    Saludos

    • Marcado como respuesta E M C miércoles, 17 de agosto de 2016 23:41
    miércoles, 17 de agosto de 2016 21:08

Todas las respuestas

  • Hola E M C

    Primero creas el procedimiento almacenado. Se hizo un ajuste en @Id = AccountId

    CREATE PROCEDURE dbo.sp_Login 
    	@par1 VARCHAR(100),
    	@par2 VARCHAR(100),
    	@Id INT OUTPUT
    AS
    BEGIN
    	SET NOCOUNT ON;
    	SELECT @Id = AccountId  FROM ACCOUNT WHERE Email = @par1 AND Password = @par2;
    RETURN

    Luego, utiliza las instrucciones siguientes para ejecutar el procedimiento:

    DECLARE @r INT;
    EXECUTE dbo.sp_Login N'Par1', N'Par2',  @Id = @r OUTPUT;

    Reemplaza Par1 por el nombre de usuario y Par2 por el la contraseña. 

    Si le ha servido, vote y proponga como respuestas.

    Saludos,


    Miguel Torres


    • Editado Miguel Torres C miércoles, 17 de agosto de 2016 21:06
    • Marcado como respuesta E M C miércoles, 17 de agosto de 2016 23:41
    miércoles, 17 de agosto de 2016 21:05
  • Hola asi quedaria tu procedure

    create procedure dbo.sp_login
    @par1 varchar(100),
    @par2 varchar(100),
    @Id int output
    AS
    set nocount on;
    
    Select @Id = AccountId From ACCOUNT Where Email=@par1 And Password =@par2;
    GO

    Y para probar si funciona

    declare @id int, @r int;
    EXEC @r = dbo.sp_Login 'user', 'pass', @Id output;
    select @Id as [ID];
    Saludos

    • Marcado como respuesta E M C miércoles, 17 de agosto de 2016 23:41
    miércoles, 17 de agosto de 2016 21:08