jueves, 14 de enero de 2010

Ejemplos de Transacciones en SQL SERVER 2005

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

1 comentario:

  1. no un ejemplo mas simple y claro .. un poc mas cortoy concreto

    ResponderEliminar