2011-02-12 9 views
8

Duplicar posibles:
What happens to an uncommitted transaction when the connection is closed?SQL Server y pérdida de conexión en medio de una transacción

¿Qué pasaría si pierde la conexión en medio de una transacción?

Supongo que si la transacción nunca se ha confirmado y podría volver a ejecutarse, pero ... ¿hay alguna forma de conectarme y transferirlo a un punto guardado y continuar con las cosas que ya tengo?

Saludos cordiales.

+0

qué conexión está hablando de. Solo la conexión al servidor sql o la conexión de red de su cliente al servidor. Esto incluso podría usar alguna conexión VPN, etc. –

+0

la conexión a sql-server. – vtortola

+0

Relacionados: http://stackoverflow.com/q/1539564/1569 –

Respuesta

8

Si pierde la conexión en el medio de una transacción, ya no podrá volver a ingresar a esta transacción desde otra conexión. Si se corta la conexión, SQL Server revertirá cualquier transacción no confirmada automáticamente. Entonces, si esto sucede, simplemente reconecte y encontrará su base de datos en el mismo estado en que estaba antes de comenzar la transacción (suponiendo que no haya otros usuarios que la hayan cambiado)

2

Generalmente, cualquier interrupción la transacción se deshace. Si el cliente se desconecta, CommandTimeout o el servidor se reinicia.

Ésta es Atómica en ACID

la capacidad de "recoger" una transacción en que se detuvo no tiene sentido

  • otras transacciones que ocurren/LSN la transacción estará fuera de servicio
  • estructuras internas se cambian como parte de una escritura (índices, etc.)/la base de datos es inconsistente
+0

No hay problema * fundamental * con las vidas largas TXN. Un DBMS podría implementarlos como una TXN "normal" de larga ejecución. Es decir. Tendría que mantener todos los bloqueos/versiones de fila/... que el TXN mantiene/requiere. Lo único es: es muy poco práctico. Las aplicaciones bloqueadas requerirían una limpieza manual, atarían los recursos del servidor y, en la mayoría de las situaciones en las que se usan bases de datos SQL, las posibilidades de comprometer una TXN de horas o incluso días serían escasas o inexistentes. –

Cuestiones relacionadas