jueves, 24 de febrero de 2011

Transacciones Implícitas en SQL Server


Una transacción es un conjunto de operaciones Transact SQL que se ejecutan como un único bloque, es decir, si falla una operación Transact SQL fallan todas. 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. Si una transacción encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos.
  Para agrupar varias sentencias Transact SQL en una única transacción, disponemos de los siguientes métodos:

  • Transacciones 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 implícitas
    Se inicia automáticamente una nueva transacción cuando se ejecuta una instrucción que realiza modificaciones en los datos, pero cada transacción se completa explícitamente con una instrucción COMMIT o ROLLBACK.
 En este post vamos a tratar sobre Transacciones Implícitas,   para conocer en qué orden y cuáles son las restricciones que ejecuta SQL Server Internamente para completar una transacción implícita.
En fin, una transacción implícita es cuando no existen declaraciones de  transacción. Se inician con las siguientes sentencias: ALTER TABLE, CREATE, DROP, GRANT, REVOKE, OPEN, FECTH, INSERT, UPDATE, DELETE, SELECT, TRUNCATE TABLE.

Flujo de la Transacción
1 - Identity Insert Check: Verifica si hay alguna Identidad declarada en la Tabla
2 - Nullability Constraint: Verifica las restricciones de valores Nulos (Allow Null)
3 - Data Type Check: Verifica el tipo de Dato que se está recibiendo para ver si corresponde con el de la Tabla
4 - Instead of Trigger:  Dispara el Evento INSTEAD OF  para los trigger que protegen la Tabla.  Este evento se ejecuta en lugar de la sentencia programada.
5 - Primary Key Constraint:   Verifica la duplicidad de registros en base a la llave primaria.
6 - Check Constraints:  Verifica las restricciones que se crearon para la tabla
7 - Foreign Key Constraint:   Verifica registros referenciados que deberán existir con las tablas relacionadas
8 - DML execution and update to Transaction Log:  Ejecución de la sentencia Transact como tal.
9 - After Trigger:  El último paso de verificación será la ejecución del Trigger como tal que protege la Tabla
10 - Commit Transaction

No hay comentarios:

Publicar un comentario