Ola pessoal 1) eu tenho uma procedure A (SP_A) e uma procedure b (SP_B) A procedure SP_B é executada dentro da procedure SP_A porem a procedure SP_B tem um retorno, que é a confirmação se tudo ocorreu bem ou nao ela me retorna ErroN,ErroMsg eu preciso dessa informação para concluir a execução da procedure SP_A porem, como eu faco para pegar os valores de retorno da procedure SP_B? eu sei que consigo isso atraves de functions, porem a principio quero continuar com procedures é possivel isso, pegar os valores de uma procedure dentro da outra? as ultimas linhas de execução da procedure SP_B são ..... FIM: IF @ErroN <> 0 BEGIN SELECT @ErroN AS ErroN, @ErroMsg AS ErroMsg ROLLBACK TRANSACTION @Transaction END ELSE BEGIN SELECT 0 AS ErroN, @ChqID AS ErroMsg COMMIT TRANSACTION @Transaction END
talves isso deixe mais claro
2) a procesure SP_A tem um transaction e a procedure SP_B tem outro crie os transaction assim na SP_A SET @Transaction = 'SP_A' BEGIN TRANSACTION @Transaction ... ROLLBACK TRANSACTION @Transaction ... COMMIT TRANSACTION @Transaction
e na SP_B assim
SET @Transaction = 'SP_B'
BEGIN TRANSACTION @Transaction
...
ROLLBACK TRANSACTION @Transaction
...
COMMIT TRANSACTION @Transaction
porem a SP_B esta cancelando o transaction da SP_A e tenho o seguinte erro
Msg 6401, Level 16, State 1, Procedure SPChqConvertSqe, Line 97 Cannot roll back ChqConvertSqe. No transaction or savepoint of that name was found. Msg 266, Level 16, State 2, Procedure SPChqConvertSqe, Line 0 Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 1, current count = 2. Msg 266, Level 16, State 2, Procedure SPChqDbtDescrInsere, Line 0 Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 0, current count = 1.
e eu nao posso tirar o transaction da SP_B pq ela é executada fora da procedure SP_A
tem como eu executar 2 transaction um dentro do outro?
o problema é, que essa procedure funciona como um pedaco da logica e pode ocorrer diversos erros entao nao tem como! o que eu to pensando em fazer é Criar uma com Transacao e outra sem nao é la aquelas coisas de solucao, porem, é o que to vendo de fazer