Ir para conteúdo
Fórum Script Brasil

Oysk

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Oysk

Perfil

  • Gender
    Male

Oysk's Achievements

0

Reputação

  1. Oi, galera! Estou com a seguinte situação: 1. Inicio uma transação através da aplicação 2. Essa aplicação chama uma procedure 3. Ocorre um erro durante a execução da procedure (forço uma exceção) 4. Salvo as informações relativas ao erro numa tabela própria, utilizando outra transação 5. Retorno para a aplicação 6. Dou ROLLBACK a partir da aplicação O problema é que, quando executo ROLLBACK, as operações salvas na tabela própria são desfeitas... ou seja, o meu COMMIT na outra transação não é considerado... Segue exemplo do que estou tentando fazer... DECLARE @P_DT_PGTO datetime DECLARE @P_COD_USUARIO int SET @P_DT_PGTO = '20100515' SET @P_COD_USUARIO = 152 BEGIN TRANSACTION TRAN_01 BEGIN TRY EXECUTE [SIP].[SP_GERA_SIP_PGTO] @P_DT_PGTO, @P_COD_USUARIO COMMIT TRANSACTION TRAN_01 END TRY BEGIN CATCH ROLLBACK TRANSACTION TRAN_01 END CATCH CREATE PROCEDURE [SIP].[SP_GERA_SIP_PGTO]( @P_DT_PGTO DATETIME, @P_COD_USUARIO INT ) AS BEGIN -- VALIDA PARÂMETROS IF (@P_DT_PGTO IS NULL) OR (@P_COD_USUARIO IS NULL) BEGIN BEGIN TRANSACTION TRAN_02 INSERT INTO SIP.LOG_SIP('DATA DE PAGAMENTO OU USUÁRIO NÃO INFORMADO(S)) COMMIT TRANSACTION TRAN_02 RAISERROR('DATA DE PAGAMENTO OU USUÁRIO NÃO INFORMADO(S).', 16, 1) END END É possível fazer o que estou querendo? []'s
×
×
  • Criar Novo...