Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

COMMIT 语句

此语句用于使数据库更改永久生效,或用于终止用户定义的事务。

语法 1
COMMIT [ WORK ]
语法 2
COMMIT TRAN[SACTION] [ transaction-name ]
参数
注释

语法 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