sql - ¿Necesito llamar a la reversión si nunca me comprometo?
sql-server transactions (1)
Debería retroceder al cerrar la conexión. El énfasis debe por una razón :-)
La transacción adecuada y el manejo de errores deben permitirle realizar siempre que se cumplan las condiciones para la confirmación y revertir cuando no lo sean. Creo que es un gran hábito cometer o deshacer siempre cuando se hace y no confiar en desconectar / etc. Todo lo que se necesita es un error o una sesión incorrecta / no cerrada para crear una cadena de bloqueo de pesadilla para todos :-)
Me estoy conectando a un servidor SQL que no utiliza autocommit. Si todo tiene éxito, lo llamo commit. De lo contrario, acabo de salir. ¿Necesito llamar explícitamente a la reversión, o se revertirá automáticamente cuando cerramos la conexión sin confirmar?
En caso de que importe, estoy ejecutando los comandos SQL desde proc sql en SAS.
ACTUALIZACIÓN: Parece que SAS puede llamar a commit automáticamente al final del bloque proc sql si no se llama rollback. Entonces, en este caso, la reversión sería más que una buena práctica; sería necesario
Actualización final: Terminamos cambiando a un nuevo sistema, que me parece que se comporta de manera opuesta a la anterior. Al finalizar la transacción sin especificar cometer o deshacer, se retrotraerá. Por lo tanto, el consejo que se ofrece a continuación es definitivamente correcto: siempre cometer o deshacer explícitamente.