1)
Este ejemplo incrementa el stock de vídeos en 1o unidades si el stock actual es mayor a 5.
BEGIN TRANSACTION
select NomVideo, StoVideo from Video where StoVideo > 5
UPDATE Video
SET StoVideo = StoVideo + 10
WHERE StoVideo > 5
COMMIT
select NomVideo, StoVideo from Video where StoVideo > 5
2)
Manejar una transacción (TRAN1) con un punto de almacenamiento intermedio (TRAN2). Nótese que se va evaluando
el valor de @@TRANCOUNT y este no es modificado por el punto de almacenamiento.
BEGIN TRAN TRA1
SELECT @@trancount as valor1
UPDATE genero SET NomGenero = 'COMICA' WHERE IdGenero=2
SELECT * FROM genero
SAVE TRAN TRA2
SELECT @@trancount as valor2
DELETE FROM genero WHERE IdGenero=2
SELECT * FROM genero
ROLLBACK TRAN TRA2
SELECT * FROM genero
ROLLBACK TRAN TRA1
SELECT * FROM genero
6)
Este ejemplo utiliza @@TRANCOUNT para comprobar si hay transacciones abiertas que haya que confirmar.
BEGIN TRANSACTION
UPDATE cliente SET apecliente = lower (nomcliente)
WHERE apecliente = 'PEREZ'
IF @@ROWCOUNT = 2
COMMIT TRAN
IF @@TRANCOUNT > 0
BEGIN
PRINT 'Una transacción necesita volver a pasar por Rollback'
select apecliente from cliente where apecliente = 'PEREZ'
ROLLBACK TRAN
select apecliente from cliente where apecliente = 'PEREZ'
END
no un ejemplo mas simple y claro .. un poc mas cortoy concreto
ResponderEliminar