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

No hay comentarios.:

Publicar un comentario

Sinónimos de palabras similares en SQL SERVER

Buenas tardes. Hace un tiempo publique un post que hablaba sobre Sinónimos en SQL SERVER, sin embargo trataba de sinónimos en en objetos, e...