此语句用于使数据库更改永久生效,或用于终止用户定义的事务。
COMMIT [ WORK ]
COMMIT TRAN[SACTION] [ transaction-name ]
transaction-name 指派给该事务的可选名称。它必须是有效的标识符。只应在最外层的嵌套 BEGIN/COMMIT 语句对或 BEGIN/ROLLBACK 语句对中使用事务名称。
有关 Adaptive Server Enterprise 和 Adaptive Server Anywhere 中嵌套的事务的详细信息,请参见 BEGIN TRANSACTION 语句。有关保存点的详细信息,请参见 SAVEPOINT 语句。
可以使用一组选项来控制 COMMIT 语句的行为细节。有关信息,请参见 COOPERATIVE_COMMIT_TIMEOUT 选项 [database]、COOPERATIVE_COMMITS 选项 [database]、DELAYED_COMMITS 选项 [database] 和 DELAYED_COMMIT_TIMEOUT 选项 [database]。可以使用 Commit 连接属性返回当前连接的 Commit 数。
语法 1 COMMIT 语句结束事务,并使在该事务期间所做的所有更改在数据库中永久生效。
数据定义语句全都自动执行提交。有关信息,请参见每个 SQL 语句的 [副作用] 清单。
如果数据库服务器检测到任何无效的外键,COMMIT 语句将失败。这产生的结果是:不可能通过任何无效外键结束事务。通常,在每个数据处理操作中会检查外键的完整性。但是,如果数据库选项 WAIT_FOR_COMMIT 设置为 ON,或者使用 CHECK ON COMMIT 子句定义了具体的外键,则数据库服务器会将完整性检查推迟到执行 COMMIT 语句后。
语法 2 可以使用 BEGIN TRANSACTION 和 COMMIT TRANSACTION 语句对来构造事务嵌套。嵌套事务类似于保存点。当在一组嵌套事务的最外层执行时,此语句使数据库更改永久生效。当在事务内部执行时,COMMIT TRANSACTION 语句使事务嵌套级别减少一级。当事务被嵌套时,只有最外层的 COMMIT 使数据库更改永久生效。
无。
关闭打开为 WITH HOLD 的游标之外的所有其它游标。
删除此连接上临时声明的表的所有行,除非这些表是用 ON COMMIT PRESERVE ROWS 声明的。
SQL/92 语法 1 是初级特性。语法 2 是 Transact-SQL 扩展。
SQL/99 语法 1 是核心特性。语法 2 是 Transact-SQL 扩展。
Sybase 受 Adaptive Server Enterprise 支持。
下面的语句提交当前事务:
COMMIT
下面的 Transact-SQL 批处理语句报告 @@trancount 的连续值:0、1、2、1、0。
PRINT @@trancount BEGIN TRANSACTION PRINT @@trancount BEGIN TRANSACTION PRINT @@trancount COMMIT TRANSACTION PRINT @@trancount COMMIT TRANSACTION PRINT @@trancount go
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。