事务的类型

Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 支持两种事务类型:显式事务和自动提交事务。

显式事务

显式事务是指显式定义了其启动和结束的事务。可以通过使用 SQL 语句或数据库 API 函数来指定显式事务。

SQL 语句

通过 SQL Server Management Studio,可以使用下列 SQL 语句来定义显式事务:

  • BEGIN TRANSACTION
    为一个连接标记出显式事务的起始点。
  • COMMIT TRANSACTION
    在没有出现错误时成功结束事务。由事务修改的所有数据都会永久成为数据库的一部分。事务所持有的资源将被释放。
  • ROLLBACK TRANSACTION
    清除出现错误的事务。由事务修改的所有数据都将返回到事务启动时的状态。事务所持有的资源将被释放。

ADO.NET 和 OLE DB

您也可以在 ADO .NET 和 OLE DB 中使用显式事务。

在 ADO .NET 中,可在 SqlCeConnection 对象上使用 BeginTransaction 方法启动一个显式事务。若要结束该事务,请调用 SqlCeTransaction 对象的 Commit 或 Rollback 方法。

在 OLE DB 中,调用 ITransactionLocal::StartTransaction 方法来启动一个事务。调用 ITransaction::Commit 或 ITransaction::Abort 方法并将 fRetaining 设置为 FALSE 可结束该事务,而不自动启动另一个事务。

注意:
您可以在单个 ADO .NET 连接上创建多个事务,并将其分配给各个命令。
重要事项:
当您使用 ADO .NET API 提交事务时,应关闭该事务中的所有已打开的数据读取器和结果集。

自动提交事务

自动提交模式是 SQL Server Compact Edition 的默认事务管理模式。每个 SQL 语句完成后都会被提交或回滚。当这一默认模式未被显式事务所覆盖时,SQL Server Compact Edition 连接以自动提交模式运行。自动提交模式同时也是 ADO .NET 和 OLE DB 的默认模式。

除非 BEGIN TRANSACTION 语句启动一个显式事务,否则 SQL Server Compact Edition 连接以自动提交模式运行。提交或回滚显式事务后,SQL Server Compact Edition 将返回自动提交模式。

编译和运行时错误

与 Microsoft SQL Server 不同,SQL Server Compact Edition 不能成批处理语句。SQL Server Compact Edition 每次只处理一个语句,并且分别执行各个语句。如果一个特定的语句返回一个错误,这并不影响它所属的批中包含的任何其他语句的状态。例如,如果将 SQL Server Management Studio 用于执行 SQL Server Compact Edition 中的下列查询集,前面的两个查询会成功,但第三个会由于出现语法错误而失败。

CREATE TABLE TestData (col int);

INSERT INTO TestData VALUES (1);

INSERTT INTO TestData VALUES (1);

注意:
如果将这些查询作为一批发送到 SQL Server,则所有查询都将失败,因为对这些查询的分析是一起进行的。语法错误会导致 SQL Server 无法为整个批创建执行计划。

在其中发生操作的更高一级的事务既不会回滚该事务,也不会提交该事务。

请参阅

概念

事务 (SQL Server Compact Edition)
控制事务
事务和连接

帮助和信息

获取 SQL Server Compact Edition 帮助