Collection Contents 上一页 下一页 PDF

ASA SQL 参考

SQL 语句

COMMIT 语句


说明 

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

语法 1 

COMMIT [ WORK ]

语法 2 

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 声明的。

另请参见 
标准和兼容性 
示例 

下面的语句提交当前事务:

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

Collection Contents 上一页 下一页 PDF