此语句用于使数据库更改永久生效,或用于终止用户定义的事务。
COMMIT [ WORK ]
COMMIT TRAN[SACTION] [ transaction-name ]
transaction-name 指派给此事务的可选名称。它必须是有效的标识符。只应在最外层的嵌套 BEGIN/COMMIT 语句对或 BEGIN/ROLLBACK 语句对中使用事务名。
有关 Adaptive Server Enterprise 和 SQL Anywhere 中嵌套事务的详细信息,请参见BEGIN TRANSACTION 语句 [T-SQL]。有关保存点的详细信息,请参见SAVEPOINT 语句。
可以使用一组选项来控制 COMMIT 语句的行为细节。请参见:
可以使用 Commit 连接属性返回当前连接的提交数。请参见连接属性。
语法 1 COMMIT 语句结束事务,并使在该事务期间所做的所有更改在数据库中永久生效。
数据定义语句全都自动执行提交。有关信息,请参见每个 SQL 语句的 [副作用] 列表。
如果数据库服务器检测到任何无效的外键,则 COMMIT 语句将失败。这产生的结果是:不可能通过任何无效外键结束事务。通常,在每个数据处理操作中会检查外键的完整性。但是,如果数据库选项 wait_for_commit 设置为 On,或者使用 CHECK ON COMMIT 选项定义了具体的外键,则数据库服务器会将完整性检查推迟到执行 COMMIT 语句之后。
语法 2 可以使用 BEGIN TRANSACTION 和 COMMIT TRANSACTION 语句对来构造嵌套事务。嵌套事务类似于保存点。当在一组嵌套事务的最外层执行时,此语句使数据库更改永久生效。当在事务内部执行时,COMMIT TRANSACTION 语句使事务嵌套级别减少一级。当事务被嵌套时,只有最外层的 COMMIT 可使数据库更改永久生效。
语法 2 是 Transact-SQL 扩展。
无。
除了使用 WITH HOLD 打开的游标之外,关闭所有游标。
删除此连接上声明的临时表的所有行,除非这些表是用 ON COMMIT PRESERVE ROWS 声明的。
SQL/2003 语法 1 是核心特性。语法 2 是 Transact-SQL 扩充。
下面的语句提交当前事务:
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 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |