Articulos de Colaboradores
Codigos Fuente
Compiladores
Documentos y Manuales
Programas y Librerias
Recursos y Articulos
Videotutoriales
Servidores (Aplicaciones)
Controles ActiveX

Analisis SEO
Conocer PageRank
Encriptar JS/HTML
Convertir HTML a JavaScript
Convertir HTML/JS a PHP
Tablas ASCII/HTML
Base Windows API
Directorio de Empresas
Libros de Informatica
Rotador de Banners

ARTICULOS TECNICOS SOBRE PROGRAMAS Y PROGRAMACION
PROGRAMACION Y DISEÑO PARA PROGRAMADORES Y WEBMASTERS


Ejemplos Transacciones en SQL Server - Pagina 3






Transacciones en SQL Server
(Continuacion)
César Manivesa
.
Quizás estos dos gráficos nos ayuden a entender el comportamiento de estas  sentencias cuando hay varios niveles de anidamiento

Comportamiento del COMMIT TRAN


Comportamiento de ROLLBACK TRAN

Como siempre un ejemplo es lo mejor para entender como funciona. 

CREATE TABLE Test (Columna int)
GO
BEGIN TRAN TranExterna -- @@TRANCOUNT ahora es 1
   SELECT El nivel de anidamiento es, @@TRANCOUNT
   INSERT INTO Test VALUES (1)
   BEGIN TRAN TranInterna1 -- @@TRANCOUNT ahora es 2.
      SELECT El nivel de anidamiento es, @@TRANCOUNT
      INSERT INTO Test VALUES (2)
      BEGIN TRAN TranInterna2 -- @@TRANCOUNT ahora es 3.
            SELECT El nivel de anidamiento es, @@TRANCOUNT
            INSERT INTO Test VALUES (3)
      COMMIT TRAN TranInterna2 -- Reduce @@TRANCOUNT a 2.
      -- Pero no se guarda nada en la base de datos.
      SELECT El nivel de anidamiento es, @@TRANCOUNT
   COMMIT TRAN TranInterna1 -- Reduce @@TRANCOUNT a 1.
   -- Pero no se guarda nada en la base de datos.
   SELECT El nivel de anidamiento es, @@TRANCOUNT
COMMIT TRAN TranExterna -- Reduce @@TRANCOUNT a 0.
-- Se lleva a cabo la transacción externa y todo lo que conlleva.
SELECT El nivel de anidamiento es, @@TRANCOUNT
SELECT * FROM Test

Por cierto que lo de usar nombre para las transacciones es por claridad, puesto que COMMIT TRAN como ya hemos dicho solamente reduce en 1 el valor de @@TRANCOUNT.

« Atras  |  Continua Aqui »





ProgramasProgramacion.com (ex-CGR Software.com)
© 2001-2024 C.G.R. @ Buenos Aires, Republica Argentina

Contacto | Privacidad