none
Executar procedure dentro de outra procedure RRS feed

  • Pergunta

  • Olá, 

    Estou com uma dificuldade de chamar um procedure dentro de outra procedure está dando erro na linha do else (5):

    IF alguma coisa
          IF (NOT EXISTS(SELECT * from tabela))
    	INSERT INTO tabela() VALUES()
    	Exec Procedure2 @UsuarioID, @ClienteID
          ELSE
    	UPDATE tabela  SET campo1='A' WHERE ...
     	Exec Procedure2 @UsuarioID, @ClienteID
    
    ELSE
    	DELETE FROM tabela WHERE ...
    
     	Exec Procedure2 @UsuarioID, @ClienteID

    Desde já agradeço,

    quarta-feira, 7 de novembro de 2012 11:03

Respostas

  • Fábio,

    Tenta assim:

    IF alguma coisa
    BEGIN
          IF (NOT EXISTS(SELECT * from tabela))
          BEGIN
    	INSERT INTO tabela() VALUES()
    	Exec Procedure2 @UsuarioID, @ClienteID
          END
          ELSE
    	UPDATE tabela  SET campo1='A' WHERE ...
     	Exec Procedure2 @UsuarioID, @ClienteID
    END
    ELSE
    BEGIN
    	DELETE FROM tabela WHERE ...
    
     	Exec Procedure2 @UsuarioID, @ClienteID
    END

    • Marcado como Resposta Fábio Freitas quarta-feira, 7 de novembro de 2012 11:11
    quarta-feira, 7 de novembro de 2012 11:06

Todas as Respostas

  • Fábio,

    Tenta assim:

    IF alguma coisa
    BEGIN
          IF (NOT EXISTS(SELECT * from tabela))
          BEGIN
    	INSERT INTO tabela() VALUES()
    	Exec Procedure2 @UsuarioID, @ClienteID
          END
          ELSE
    	UPDATE tabela  SET campo1='A' WHERE ...
     	Exec Procedure2 @UsuarioID, @ClienteID
    END
    ELSE
    BEGIN
    	DELETE FROM tabela WHERE ...
    
     	Exec Procedure2 @UsuarioID, @ClienteID
    END

    • Marcado como Resposta Fábio Freitas quarta-feira, 7 de novembro de 2012 11:11
    quarta-feira, 7 de novembro de 2012 11:06
  • Muito obrigado Fábio, funcionou até acertei o código.

    IF alguma coisa BEGIN

    Exec Procedure2 @UsuarioID, @ClienteID (é a mesma procedure) IF (NOT EXISTS(SELECT * from tabela)) BEGIN INSERT INTO tabela() VALUES() END ELSE UPDATE tabela SET campo1='A' WHERE ... END ELSE BEGIN DELETE FROM tabela WHERE ... Exec Procedure2 @UsuarioID, @ClienteID END

    Abcs.

    quarta-feira, 7 de novembro de 2012 11:13