Jump to content
leoretorico

Procedure expects parameter which was not supplied

Recommended Posts

leoretorico

Tenho uma tabela

tblcademail id(int) , autorizacao(varchar) e preciso criar um procedimento armazenado que verifique se o campo"autorizacao" é "0" e se for, fazer um update para "1"

create procedure Autocheck
 ( @id   integer,
 @autorizacao  varchar(20))
 AS
 BEGIN

 set nocount on;
 BEGIN TRY
 select autorizacao  from Leoretorico.dbo.tblcademail where id=1
 if (@autorizacao=0)
 begin
  update Leoretorico.dbo.tblcademail set[autorizacao]='1' where [id]='1'
  end
  end try
  begin catch
  rollback tran
  select ERROR_MESSAGE() as retorno
  end catch
  end

Mas estou recebendo este erro Msg 201, Level 16, State 4, Procedure Autocheck, Line 0

Procedure or function 'Autocheck' expects parameter '@id', which was not supplied.

Edited by Rechousa

Share this post


Link to post
Share on other sites
Rechousa

Olá,

Vê o que o Jorge Paulino te escreveu, pois deverá ser essa a solução, já que é mesmo essa a mensagem de erro que estás a obter.

Contudo, reparei numas coisas no teu código que não percebi e que passo a explicar:

a) Estás a fazer um rollback, mas não tens um begin transaction (nem commit) - imagino que estejas a usar várias stored procedures encadeadas;

b) A tua SP recebe o parâmetro @autorizacao que é VARCHAR(20), mas mais à frente estás a comparar o seu valor como se fosse um inteiro - if (@autorizacao=0);

c) A tua linha de código serve para quê? Não fazes nada com ela, só fará sentido se estiveres a tratar esse valor na tua aplicação;

select autorizacao  from Leoretorico.dbo.tblcademail where id=1

Não quererás inicializar a variável @autorizacao com o retorno dessa query? Assim:

select @autorizacao = autorizacao  from Leoretorico.dbo.tblcademail where id=1;
-- ou
SET @autorizacao = (SELECT autorizacao  from Leoretorico.dbo.tblcademail where id=1);

Espero ter ajudado,


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.