Transacciones y simultaneidad

Una transacción consiste en un comando único o en un grupo de comandos que se ejecutan como un paquete. Las transacciones permiten combinar varias operaciones en una sola unidad de trabajo. Si en un punto de la transacción se produjera un error, todas las actualizaciones podrían revertirse y devolverse al estado que tenían antes de la transacción.

Una transacción debe ajustarse a las propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad) para poder garantizar la coherencia de datos. La mayoría de los sistemas de bases de datos relacionales, como Microsoft SQL Server, admiten transacciones, al proporcionar funciones de bloqueo, registro y administración de transacciones cada vez que una aplicación cliente realiza una operación de actualización, inserción o eliminación.

Nota

Las transacciones que requieren varios recursos pueden reducir la simultaneidad si la duración del bloqueo es demasiado larga. Por ello, haga la transacción lo más corta posible.

Las transacciones explícitas en procedimientos almacenados suelen dar mejores resultados cuando una transacción implica el uso de varias tablas en la misma base de datos o servidor. Se pueden crear transacciones en procedimientos almacenados de SQL Server mediante las instrucciones BEGIN TRANSACTION, COMMIT TRANSACTION o ROLLBACK TRANSACTION de Transact-SQL.

Para las transacciones que implican varios administradores de recursos, como una transacción entre SQL Server y Oracle, se necesita una transacción distribuida.

En esta sección

Transacciones locales
Muestra cómo realizar transacciones en una base de datos.

Transacciones distribuidas
Describe cómo realizar transacciones distribuidas en ADO.NET.

Integración de System.Transactions con SQL Server
Se describe la integración de System.Transactions con SQL Server para trabajar con transacciones distribuidas.

Simultaneidad optimista
Describe la simultaneidad optimista y pesimista, y cómo puede probar las infracciones de simultaneidad.

Consulte también