entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Uso de transacciones para mantener consistencia lógica en SQL

¿Que puedo hacer para garantizar que las sentencias siguientes se ejecuten todas exitosamente o no se ejecute ninguna?

update usuario set email = '[email protected]' where id = 1;
update usuario set status = 'inactivo' where id = 1;
update usuario set saldo = saldo + 100 where id > 1;   

2 Respuestas

1voto

hexa06 Puntos620

Tendras que manejas esto:
BEGIN TRY
BEGIN TRANSACTION
update usuario set email = '[email protected]' where id = 1;
update usuario set status = 'inactivo' where id = 1;
update usuario set saldo = saldo + 100 where id > 1;
IF @ERROR = 0
BEGIN
COMMIT TRANSACTION
END
ELSE
ROLLBACK
END
END TRY
BEGIN CATCH
ROLLBACK
END CATCH

0voto

Peter Puntos150460

Tienes que realizar las actualizaciones dentro de una transacción:

begin tran;
-- actualizacoines...
commmit tran;

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta