Tengo un procedimiento almacenado (he quitado todo el código porque son miles de líneas y no son necesarias para la duda):
[PHP]
Código SQL:
Ver originalON [dbo].[TABLA]
FOR DELETE
AS
BEGIN TRY
BEGIN TRANSACTION
DECLARE @VARIABLE1 VARCHAR(10)
--BLABLABLA
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF XACT_STATE() <> 0
BEGIN
ROLLBACK TRANSACTION;
END
INSERT INTO LogGeneral (Evento,Tag) VALUES (ERROR_PROCEDURE() + ' ' + ERROR_MESSAGE(),'ErrorProcAlm')
END CATCH
Lo que quiero es que si se produce un error me lo guarde en una tabla, para ello uso un TRY...CATH.
Como puede verse uso una trasacción.
El problema es que la trasacción crea conflictos con otras transacciones y no me queda otra que quitarla.
SI QUITO LA TRANSACCIÓN CUANDO SE PRODUCE UN ERROR NO ME INSERTA NADA EN LA TABLA DONDE GUARDO LOS ERRORES!
¿Alguien sabe porqué?
¿Se os ocurre otra manera de anotar los errores?
Saludos y gracias.