lunes, 6 de abril de 2015

Transacciones en SQL Server

Buenas tardes lectores, aquí escribiéndoles este lunes de pascua, y hoy les voy a hablar de algo que me llamo la atención recientemente y que no hay mucha información, o si la hay, es poco clara; vamos  hablar de las transacciones en SQL Server. Una transacción son un bloque de instrucciones, como todos sabemos si ponemos una lista de 20 update, y ejecutamos la consulta, la base de datos automáticamente leera cada uno y los actualizará, pero que pasa si algún update falla, pues ese update quedará sin realizarse, el problema es que a veces necesitamos que se realicen TODOS y cada uno de los updates y si alguno falla entonces no se realice ninguno, vamos a poner un ejemplo para que se entienda mejor


BEGIN TRY
 begin transaction aumento
  insert into Materias VALUES('0016','QUIMICA II', 15);
  insert into Materias  VALUES ('0015','QUIMICA V', 15);
  COMMIT TRAN aumento
END TRY
BEGIN CATCH
 PRINT ERROR_MESSAGE() + CHAR(13) + 'Se esta borrando la transaccion'
 rollback transaction aumento
 
 
END CATCH

Vamos a analizar lo que hace estra transacción, para empezar vamos a declarar el Try, si, se pueden manejar excepciones en SQL, en la línea numero 2, encontramos en BEGIN TRANSACTION y el nombre de la misma, con eso le indicamos que va a realizar todo el bloque de instrucciones que existen hasta el COMMIT TRAN, si falla alguno de ellos, se irá al catch y nos encontramos con el la línea ROLLBACK TRANSACTION, quiere decir que va a borrar todo lo que hizo, de esta manera, si un insert o un update fallan, se regresará al estado original antes de que se actualizara, la linea PRINT ERROR_MESSAGE() + CHAR(13) + 'Se esta borrando la transaccion' nos indica el error que paso, luego da un espacio y nos muestra "Se esta borrando la transacción".

Espero haberme dado a entender, si no, pueden preguntar, den +1 para que más gente lo lea o un clic a algún anuncio que les interese.

Saludos y gracias

Banderas de Visitantes

Flag Counter