没有Tran的SQL Server COMMIT | 交易?

Roy*_*mir 6 transactions sql-server-2005

根据msdn:提交语法是:

在此输入图像描述

然而,当我忽略tran/ transaction词-它编译并没有错误运行.在此输入图像描述

它怎么样?

它会改变别的吗?

gbn*_*gbn 7

有问题的COMMIT实际上并不是你认为的COMMIT.请参阅COMMIT WORK

COMMIT [WORK] [; ]

备注

此语句与COMMIT TRANSACTION的功能相同,但COMMIT TRANSACTION接受用户定义的事务名称.无论是否指定可选关键字WORK,此COMMIT语法都与SQL-92兼容.

所以COMMIT它本身COMMIT WORK就是相同的COMMIT TRANSACTION.
同上ROLLBACK [ WORK ]

评论后,

BEGIN TRANSACTION gbn
SELECT 1
COMMIT gbn -- fail
GO
BEGIN TRANSACTION gbn
SELECT 2
COMMIT TRAN gbn -- works
GO
Run Code Online (Sandbox Code Playgroud)