TRANSACCIONES ANIDADAS

20/05/2008 - 00:06 por Fernando | Informe spam
GRUPPO, COMO ESTAN

NECESITO HACER UNA SERIE DE PROCEDIMIENTOS, EN SQL 2005 STD.
NECESITO HACER UNOS INSERTS, UPDATE Y DELETE EN UN MISMO SP, Y QUIERO
IMPLEMENTAR TRANSACCIONES, O SEA IR HACIENDO LAS TRANSACCIONES PERO
DENTRO DE UNA GENERAL,. NO SE SI ME EXPLICO

EL TEMA ES QUE SI ALGUNA TRANSACCION INTERNA ME FALLA, QUE EL
PROCEDIMIENTO VUELVA PARA ATRAZ TODO, HAGA EL ROLLBACK Y ADEMAS ME
DIGA EN QUE SUBTRANSACCION SE PRODUJO LA FALLA. POR EJMPLO SI TENGO
QUE HACER UN INSERT, UN DELETE, Y UN UPDATE. Y LA TRANSACCION FALLA EN
EL DELETE. QUE EL SP ME DIGA QUE EL ERROR SE PRODUJO EN EL DELETE Y
QUE HAGA EL ROLLBACK DE LA TRANSACCION GENERLA

ESTUVE LEYENDO EN LOS BOOKS,ENCONTRE ALGO SOBRE ANIDADAS Y MARCAS DE
TRANSACCIONES, PERO NO VEO COMO IMPLEMENTAR ESO PARA QEU FUNCIONE EN
MI ESCENARIO.

GRACIAS! ESPERO SU RESPUESTA

Preguntas similare

Leer las respuestas

#16 Carlos M. Calvelo
21/05/2008 - 15:14 | Informe spam
On 21 mei, 11:50, Carlos Sacristan
wrote:
Más que con @@ERROR, lo suyo sería, como comenta Miguel, con el bloque TRY
... CATCH (si está usando SQL 2005)




Totalmente de acuerdo. Como le digo a Miguel, lo he
puesto sin pensar que usa SS2005.

Saludos,
Carlos
Respuesta Responder a este mensaje
#17 Miguel Angel
22/10/2009 - 22:44 | Informe spam
Hola Fernando,

Te recomiento que utilices transacciones con nombres, asi podras controlar
cual te falla. Para eso utiliza:

BEGIN TRAN <nombretransaccion>

Saludos,

"Fernando" wrote:

GRUPPO, COMO ESTAN

NECESITO HACER UNA SERIE DE PROCEDIMIENTOS, EN SQL 2005 STD.
NECESITO HACER UNOS INSERTS, UPDATE Y DELETE EN UN MISMO SP, Y QUIERO
IMPLEMENTAR TRANSACCIONES, O SEA IR HACIENDO LAS TRANSACCIONES PERO
DENTRO DE UNA GENERAL,. NO SE SI ME EXPLICO

EL TEMA ES QUE SI ALGUNA TRANSACCION INTERNA ME FALLA, QUE EL
PROCEDIMIENTO VUELVA PARA ATRAZ TODO, HAGA EL ROLLBACK Y ADEMAS ME
DIGA EN QUE SUBTRANSACCION SE PRODUJO LA FALLA. POR EJMPLO SI TENGO
QUE HACER UN INSERT, UN DELETE, Y UN UPDATE. Y LA TRANSACCION FALLA EN
EL DELETE. QUE EL SP ME DIGA QUE EL ERROR SE PRODUJO EN EL DELETE Y
QUE HAGA EL ROLLBACK DE LA TRANSACCION GENERLA

ESTUVE LEYENDO EN LOS BOOKS,ENCONTRE ALGO SOBRE ANIDADAS Y MARCAS DE
TRANSACCIONES, PERO NO VEO COMO IMPLEMENTAR ESO PARA QEU FUNCIONE EN
MI ESCENARIO.

GRACIAS! ESPERO SU RESPUESTA

Respuesta Responder a este mensaje
#18 Samuel
27/10/2009 - 02:38 | Informe spam
SET NOCOUNT ON;
BEGIN TRANSACTION MANT_USUARIO
BEGIN TRY
*Aqui colocas todo tu procedimiento
*Puedes llamar tambien a otros procedimientos , cada SP. debera
tener nombre de transaccion diferente.
END TRY

BEGIN CATCH /* Hay un error, deshacemos los cambios*/
ROLLBACK TRANSACTION MANT_USUARIO
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
DECLARE @ErrorProcedure NVARCHAR(40);
DECLARE @ErrorLine INT; SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE(),
@ErrorProcedure = ERROR_PROCEDURE(),
@ErrorLine = ERROR_LINE();

RAISERROR (@ErrorMessage,
@ErrorSeverity,
@ErrorState,
@ErrorProcedure,
@ErrorLine )
END CATCH

SET NOCOUNT OFF

PD... Esto me funciona perfectamente, lo que quisiera es poder devolver los
errores en Castellano, si lo has desarrollado podrias postearlo?



"Miguel Angel" escribió en el
mensaje de noticias:
Hola Fernando,

Te recomiento que utilices transacciones con nombres, asi podras controlar
cual te falla. Para eso utiliza:

BEGIN TRAN <nombretransaccion>

Saludos,

"Fernando" wrote:

GRUPPO, COMO ESTAN

NECESITO HACER UNA SERIE DE PROCEDIMIENTOS, EN SQL 2005 STD.
NECESITO HACER UNOS INSERTS, UPDATE Y DELETE EN UN MISMO SP, Y QUIERO
IMPLEMENTAR TRANSACCIONES, O SEA IR HACIENDO LAS TRANSACCIONES PERO
DENTRO DE UNA GENERAL,. NO SE SI ME EXPLICO

EL TEMA ES QUE SI ALGUNA TRANSACCION INTERNA ME FALLA, QUE EL
PROCEDIMIENTO VUELVA PARA ATRAZ TODO, HAGA EL ROLLBACK Y ADEMAS ME
DIGA EN QUE SUBTRANSACCION SE PRODUJO LA FALLA. POR EJMPLO SI TENGO
QUE HACER UN INSERT, UN DELETE, Y UN UPDATE. Y LA TRANSACCION FALLA EN
EL DELETE. QUE EL SP ME DIGA QUE EL ERROR SE PRODUJO EN EL DELETE Y
QUE HAGA EL ROLLBACK DE LA TRANSACCION GENERLA

ESTUVE LEYENDO EN LOS BOOKS,ENCONTRE ALGO SOBRE ANIDADAS Y MARCAS DE
TRANSACCIONES, PERO NO VEO COMO IMPLEMENTAR ESO PARA QEU FUNCIONE EN
MI ESCENARIO.

GRACIAS! ESPERO SU RESPUESTA

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida