Exportar (0) Imprimir
Expandir todo

Tipos de transacciones

Microsoft SQL Server Compact es compatible con dos tipos de transacciones: explícitas y de confirmación automática.

Una transacción explícita es aquella en la que se definen explícitamente el inicio y el final de la transacción. Se pueden especificar mediante instrucciones SQL o funciones API de la base de datos.

Instrucciones SQL

Con Visual Studio se pueden utilizar las siguientes instrucciones SQL para definir transacciones explícitas:

  • BEGIN TRANSACTION

    Marca el punto de inicio de una transacción explícita para una conexión.

  • COMMIT TRANSACTION

    Finaliza correctamente una transacción si no se han encontrado errores. Todos los datos modificados por la transacción se convierten en parte permanente de la base de datos. Se liberan los recursos ocupados por la transacción.

  • ROLLBACK TRANSACTION

    Borra una transacción en la que se han encontrado errores. Todos los datos modificados por la transacción vuelven al estado en el que estaban al inicio de la transacción. Se liberan los recursos ocupados por la transacción.

ADO.NET y OLE DB

También puede utilizar transacciones explícitas en ADO.NET y OLE DB.

En ADO.NET, use el método BeginTransaction en un objeto SqlCeConnection para iniciar una transacción explícita. Para finalizar la transacción, llame al método Commit o Rollback del objeto SqlCeTransaction.

En OLE DB, llame al método ITransactionLocal::StartTransaction para iniciar una transacción. Llame al método ITransaction::Commit o ITransaction::Abort, con fRetaining establecido en FALSE para finalizar la transacción sin iniciar otra de forma automática. Tenga en cuenta que puede crear varias transacciones en una sola conexión ADO.NET y asignarlas a comandos individuales.

Nota importante Importante

Cuando se confirma la transacción mediante la API ADO.NET, deben cerrarse todos los lectores de datos y conjuntos de resultados abiertos en la transacción.

El modo de confirmación automática es el modo de administración de transacciones predeterminado de SQL Server Compact. Cada instrucción SQL se confirma o se revierte cuando finaliza. Una conexión de SQL Server Compact funciona en modo de confirmación automática siempre que este modo predeterminado no haya sido sustituido por transacciones explícitas. El modo de confirmación automática también es el modo predeterminado para ADO.NET y OLE DB.

Una conexión de SQL Server Compact funciona en modo de confirmación automática hasta que una instrucción BEGIN TRANSACTION inicia una transacción explícita. Cuando la transacción explícita se confirma o revierte, SQL Server Compact vuelve al modo de confirmación automática.

A diferencia de SQL Server, SQL Server Compact no procesa las instrucciones en lotes. SQL Server Compact lo hace de una en una y ejecuta cada instrucción independientemente. Si una instrucción concreta devuelve un error, esto no afecta a las demás instrucciones incluidas en el lote. Por ejemplo, si se utiliza Visual Studio para ejecutar el siguiente conjunto de consultas en SQL Server Compact, las dos primeras se realizarían correctamente, pero en la tercera se produciría un error debido al error de sintaxis.

CREATE TABLE TestData (col int);

INSERT INTO TestData VALUES (1);

INSERTT INTO TestData VALUES (1);

Nota Nota

Si estas consultas se enviaran como un lote a SQL Server, se produciría un error en todas ellas, ya que se analizan conjuntamente. El error de sintaxis impide que SQL Server construya un plan de ejecución para el lote.

Las transacciones de nivel superior en las que tiene lugar una operación no revierten ni confirman la transacción.

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft