Saltar al contenido

¿Cuál es el equivalente a las transacciones de SQL Server en DB2?

Solución:

La respuesta es en realidad un poco más complicada de lo que se indica aquí. Es cierto que las transacciones están estandarizadas por ANSI y DB2 mayo apoyalos.

DB2 para z / OS puede ser una bestia muy diferente de las otras variantes (LUW, Linux-Unix-Windows, es la más común). A riesgo de caer en una perorata, esto hace que la idea de hablar sobre DB2 sea casi inútil. Está hablando de alguna variante específica de la base de datos de IBM, pero lo que funciona en una puede ser completamente inválido en otra. Asumiré que el sabor que usaba el OP no era el de z / OS, ya que el BEGIN TRANSACTION la respuesta fue aceptada.

Para aquellos de ustedes que se encuentran con esto tratando de usar transacciones con DB2 z / OS, aquí está el resumen: DB2 para el mainframe no tiene transacciones explícitas. No hay BEGIN TRANSACTION o cualquier otra construcción comparable. Las transacciones se inician implícitamente (generalmente se las conoce como una unidad de trabajo en los documentos) y se confirman o revierten explícitamente (generalmente, muchas herramientas de GUI, como Toad, tienen una función de confirmación automática que puede acercarse sigilosamente de vez en cuando).

Del manual de referencia de SQL de 9.1 z / OS (página 28; disponible en http://www-01.ibm.com/support/docview.wss?uid=swg27011656#manuals):

“Una unidad de trabajo se inicia cuando se inicia un proceso de solicitud. Una unidad de trabajo también se inicia cuando la unidad de trabajo anterior termina por algo diferente al final del proceso de solicitud. Una unidad de trabajo termina por una operación de confirmación , una operación de reversión completa o el final de un proceso de aplicación. Una operación de confirmación o reversión afecta solo a los cambios realizados en la base de datos dentro de la unidad de trabajo que finaliza “.

Lo más parecido que se obtiene al escribir scripts es especificar manualmente un punto de guardado.

Estos se ven así:

 SAVEPOINT A ON ROLLBACK RETAIN CURSORS;

 UPDATE MYTABLE SET MYCOL = 'VAL' WHERE 1;

 ROLLBACK WORK TO SAVEPOINT A;

Superficialmente, se asemejan a transacciones explícitas, pero no lo son. En cambio, en realidad son solo puntos en el tiempo dentro de una sola transacción implícita. Para muchos propósitos, pueden ser suficientes, pero es importante ser consciente de las diferencias conceptuales.

Vea aqui para mas informacion. Pero basicamente

BEGIN TRANSACTION
COMMIT TRANSACTION
ROLLBACK
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *