TRANSACCIONE
S
¿Qué es una
Transacción ?
Una transacción es una unidad única de
trabajo. Si una transacción tiene éxito,
todas las modificaciones de los datos
realizadas durante la transacción se
confirman y se convierten en una parte
permanente de la base de datos.
Propiedades
 Atomicidad: La transacción
es realizada completamente
o no realiza ninguna acción.
No puede realizar solamente
mitad o parte de la
transacción.
 Consistencia: Solo son
ejecutadas aquellas
transacciones que no
tiene conflicto con las
reglas y directrices de
integridad de la base de
datos.
 Aislamiento: Si hay dos o
más transacciones que en
un mismo tiempo desean
realizar cambio a una
misma información, el
sistema garantiza que cada
transacción ignora al resto
de las transacciones es
decir que cada una se
maneja de forma
independiente para no
generar errores.
 Durabilidad: Cuando
una transacción es
exitosa los cambios
hechos por la
transacción
permanecen en el
sistema y no se
pueden deshacer aunq
ue falle el sistema.
Tipos
Ámbito de Lote: Si no
se confirma o revierte
una transacción de
ámbito de lote cuando
se completa el lote,
SQL Server la revierte
automáticamente.
 Implícitas: Se
inicia
implícitamente una
nueva transacción
cuando se ha
completado la
anterior.
Explícitas: Cada
transacción se inicia
explícitamente con la
instrucción BEGIN
TRANSACTION y se
termina explícitamente
con una instrucción
COMMIT o
ROLLBACK.
Transacciones de
Confirmación
Automática: Cada
instrucción individual
es una transacción.
Comandos
 BEGIN TRANSACTION: Representa un punto en el
que los datos a los que hace referencia una conexión
son lógica y físicamente coherentes. Si se producen
errores, se pueden revertir todas las modificaciones
realizadas en los datos después de BEGIN
TRANSACTION para devolver los datos al estado
conocido de coherencia. Cada transacción dura hasta
que se complete sin errores y se emite COMMIT
TRANSACTION para hacer que las modificaciones
sean parte permanente de la base de datos, o hasta
que se produzcan errores y se borren todas las
modificaciones con la instrucción ROLLBACK
TRANSACTION.
Comandos
• ROLLBACK TRANSACTION: Revierte
una transacción explícita o implícita
hasta el inicio de la transacción o hasta
un punto de retorno dentro de la
transacción. Puede usar ROLLBACK
TRANSACTION para borrar todas las
modificaciones de datos realizadas
desde el inicio de la transacción o hasta
un punto de retorno. También libera los
recursos que mantiene la transacción.
SINTAXIS
ROLLBACK { TRAN | TRANSACTION } [
transaction_name |
@tran_name_variable | savepoint_name |
@savepoint_variable ] [ ; ]
Comandos
• COMMIT TRANSACTION: Marca el final de
una transacción correcta, implícita o explícita.
Si @@TRANCOUNT es 1, COMMIT
TRANSACTION hace que todas las
modificaciones efectuadas sobre los datos
desde el inicio de la transacción sean parte
permanente de la base de datos, libera los
recursos mantenidos por la transacción y
reduce @@TRANCOUNT a 0. Si
@@TRANCOUNT es mayor que 1, COMMIT
TRANSACTION solo reduce
@@TRANCOUNT en 1 y la transacción
sigue activa.
Ejemplo
1. Regularmente las transacciones comienzan con un BEGIN WORK y finalizan con
un COMMIT/COMMIT WORK o ROLLBACK/ROLLBACK WORK.
Ejemplo
Hay otra manera de escribir una transacción estas son las transacciones ANSI,
estas comienzan cuando inicia cualquier sentencia SQL y finaliza con
un COMMIT o ROLLBACK.
Ejemplo
1. Este ejemplo elimina un candidato de la base de datos AdventureWorks2012 tanto en
la instancia local del Motor de base de datos como en la instancia de un servidor
remoto. Ambas bases de datos, local y remota, confirmarán o revertirá la transacción.
GRACIAS POR SU
ATENCIÓN

Transacciones

  • 1.
  • 2.
    ¿Qué es una Transacción? Una transacción es una unidad única de trabajo. Si una transacción tiene éxito, todas las modificaciones de los datos realizadas durante la transacción se confirman y se convierten en una parte permanente de la base de datos.
  • 3.
    Propiedades  Atomicidad: Latransacción es realizada completamente o no realiza ninguna acción. No puede realizar solamente mitad o parte de la transacción.  Consistencia: Solo son ejecutadas aquellas transacciones que no tiene conflicto con las reglas y directrices de integridad de la base de datos.  Aislamiento: Si hay dos o más transacciones que en un mismo tiempo desean realizar cambio a una misma información, el sistema garantiza que cada transacción ignora al resto de las transacciones es decir que cada una se maneja de forma independiente para no generar errores.  Durabilidad: Cuando una transacción es exitosa los cambios hechos por la transacción permanecen en el sistema y no se pueden deshacer aunq ue falle el sistema.
  • 4.
    Tipos Ámbito de Lote:Si no se confirma o revierte una transacción de ámbito de lote cuando se completa el lote, SQL Server la revierte automáticamente.  Implícitas: Se inicia implícitamente una nueva transacción cuando se ha completado la anterior. Explícitas: Cada transacción se inicia explícitamente con la instrucción BEGIN TRANSACTION y se termina explícitamente con una instrucción COMMIT o ROLLBACK. Transacciones de Confirmación Automática: Cada instrucción individual es una transacción.
  • 5.
    Comandos  BEGIN TRANSACTION:Representa un punto en el que los datos a los que hace referencia una conexión son lógica y físicamente coherentes. Si se producen errores, se pueden revertir todas las modificaciones realizadas en los datos después de BEGIN TRANSACTION para devolver los datos al estado conocido de coherencia. Cada transacción dura hasta que se complete sin errores y se emite COMMIT TRANSACTION para hacer que las modificaciones sean parte permanente de la base de datos, o hasta que se produzcan errores y se borren todas las modificaciones con la instrucción ROLLBACK TRANSACTION.
  • 6.
    Comandos • ROLLBACK TRANSACTION:Revierte una transacción explícita o implícita hasta el inicio de la transacción o hasta un punto de retorno dentro de la transacción. Puede usar ROLLBACK TRANSACTION para borrar todas las modificaciones de datos realizadas desde el inicio de la transacción o hasta un punto de retorno. También libera los recursos que mantiene la transacción. SINTAXIS ROLLBACK { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable | savepoint_name | @savepoint_variable ] [ ; ]
  • 7.
    Comandos • COMMIT TRANSACTION:Marca el final de una transacción correcta, implícita o explícita. Si @@TRANCOUNT es 1, COMMIT TRANSACTION hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transacción sean parte permanente de la base de datos, libera los recursos mantenidos por la transacción y reduce @@TRANCOUNT a 0. Si @@TRANCOUNT es mayor que 1, COMMIT TRANSACTION solo reduce @@TRANCOUNT en 1 y la transacción sigue activa.
  • 8.
    Ejemplo 1. Regularmente lastransacciones comienzan con un BEGIN WORK y finalizan con un COMMIT/COMMIT WORK o ROLLBACK/ROLLBACK WORK.
  • 9.
    Ejemplo Hay otra manerade escribir una transacción estas son las transacciones ANSI, estas comienzan cuando inicia cualquier sentencia SQL y finaliza con un COMMIT o ROLLBACK.
  • 10.
    Ejemplo 1. Este ejemploelimina un candidato de la base de datos AdventureWorks2012 tanto en la instancia local del Motor de base de datos como en la instancia de un servidor remoto. Ambas bases de datos, local y remota, confirmarán o revertirá la transacción.
  • 11.