Tipos de transacciones

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

Transacciones explícitas

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 SQL Server Management 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.

[!NOTA] Puede crear varias transacciones en una sola conexión ADO .NET y asignarlas a comandos individuales.

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.

Transacciones de confirmación automática

El modo de confirmación automática es el modo de administración de transacciones predeterminado de SQL Server Compact Edition. Cada instrucción SQL se confirma o se deshace cuando finaliza. Una conexión de SQL Server Compact Edition 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 Edition 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 Edition vuelve al modo de confirmación automática.

Errores en tiempo de ejecución y de compilación

A diferencia de Microsoft SQL Server, SQL Server Compact Edition no procesa las instrucciones en lotes. SQL Server Compact Edition lo hace de una en una y ejecuta cada instrucción por separado. Si una instrucción concreta devuelve un error, esto no afecta al estado de ninguna otra instrucción incluida en el lote. Por ejemplo, si se utiliza SQL Server Management Studio para ejecutar el siguiente conjunto de consultas en SQL Server Compact Edition, 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] Si estas consultas se enviaran como un lote a SQL Server, se produciría un error en todas, ya que se analizarían conjuntamente. El error de sintaxis haría que SQL Server no pudiera crear un plan de ejecución para todo el lote.

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

Vea también

Conceptos

Transacciones (SQL Server Compact Edition)
Controlar transacciones
Transacciones y conectividad

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition