Ir para o conteúdo
leoretorico

Procedure expects parameter which was not supplied

Mensagens Recomendadas

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.

Editado por Rechousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.