Guest - Ricardo - Postado Agosto 23, 2006 Denunciar Share Postado Agosto 23, 2006 Boa noite galera,Criei a procedure abaixo e da o seguinte erro Server: Msg 137, Level 15, State 2, Procedure SP_INSERE_VISITA, Line 10Must declare the variable '@vagas'.Server: Msg 137, Level 15, State 1, Procedure SP_INSERE_VISITA, Line 12Must declare the variable '@vagas'.*******************************************************ALTER PROCEDURE SP_INSERE_VISITA( @id_condominio int, @id_predio int, @id_apto int, @placa char(7) )ASSELECT @vagas FROM TB_APTOS WHERE id_apto = @id_aptoIF (@VAGAS = 0)BEGINPRINT 'Não existe vaga para este apto'RETURNENDELSEBEGININSERT INTO TB_VISITAS (id_condominio,id_predio,id_apto,placa) VALUES (@id_condominio,@id_predio,@id_apto,@placa)PRINT 'Vaga cadastrada com sucesso'END****************************************************************o problema é que se declaro no inicio , o erro vai dar na hora em que eu mandar executar a procedureQuem puder ajudar eu agradeçoabraçosRicardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Agosto 23, 2006 Denunciar Share Postado Agosto 23, 2006 qual o erro que dá quando voce manda executar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Reinaldo -- Postado Julho 11, 2007 Denunciar Share Postado Julho 11, 2007 qual o erro que dá quando voce manda executar?Então o problema é o seguinte:1 - você precisa declarar a variavel sim...2 - O erro que aparece depois é por causa deste código: "SELECT @vagas FROM TB_APTOS WHERE id_apto = @id_apto"Para Corrigir:1 - Declare a variável2 - Altere o comando para algo assim: SELECT @vagas = Count(*) FROM TB_APTOS WHERE id_apto = @id_aptoO erro acontece porque o SQL não sabe o que fazer com a variável, você precisa indicar o que vai ser jogado nela, não funciona como num INSERT SELECT.Espero ter ajudado.Att,Reinaldo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Gesiel -- Postado Julho 11, 2007 Denunciar Share Postado Julho 11, 2007 Ricardo,como disse a Andreia, você tem que declarar a variável. Basta você mudar sua procedure para o exemplo abaixo:ALTER PROCEDURE SP_INSERE_VISITA(@id_condominio int,@id_predio int,@id_apto int,@placa char(7))ASSET NOCOUNT ONDECLARE @vagas intSELECT @vagas = COUNT(*) FROM TB_APTOS WHERE id_apto = @id_aptoIF (@VAGAS = 0)BEGINPRINT 'Não existe vaga para este apto'RETURNENDELSEBEGININSERT INTO TB_VISITAS (id_condominio,id_predio,id_apto,placa)VALUES (@id_condominio,@id_predio,@id_apto,@placa)PRINT 'Vaga cadastrada com sucesso'END Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Ricardo -
Boa noite galera,
Criei a procedure abaixo e da o seguinte erro
Server: Msg 137, Level 15, State 2, Procedure SP_INSERE_VISITA, Line 10
Must declare the variable '@vagas'.
Server: Msg 137, Level 15, State 1, Procedure SP_INSERE_VISITA, Line 12
Must declare the variable '@vagas'.
*******************************************************
ALTER PROCEDURE SP_INSERE_VISITA
(
@id_condominio int,
@id_predio int,
@id_apto int,
@placa char(7)
)
AS
SELECT @vagas FROM TB_APTOS WHERE id_apto = @id_apto
IF (@VAGAS = 0)
BEGIN
PRINT 'Não existe vaga para este apto'
RETURN
END
ELSE
BEGIN
INSERT INTO TB_VISITAS (id_condominio,id_predio,id_apto,placa)
VALUES (@id_condominio,@id_predio,@id_apto,@placa)
PRINT 'Vaga cadastrada com sucesso'
END
****************************************************************
o problema é que se declaro no inicio , o erro vai dar na hora em que eu mandar executar a procedure
Quem puder ajudar eu agradeço
abraços
Ricardo
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.