SQL Server BEGIN / END与BEGIN TRANS / COMMIT / ROLLBACK
发布时间:2020-12-12 16:18:05 所属栏目:MsSql教程 来源:网络整理
导读:我一直试图在网络上找到关于这些语句之间的差异的信息,在我看来,它们是一样的,但是我找不到这两者之间的任何比较的确认. 这样做有什么区别? BEGIN -- Some update,insert,set statementsEND 并做到这一点 BEGIN TRANS -- Some update,set statementsCOMMIT T
我一直试图在网络上找到关于这些语句之间的差异的信息,在我看来,它们是一样的,但是我找不到这两者之间的任何比较的确认.
这样做有什么区别? BEGIN -- Some update,insert,set statements END 并做到这一点 BEGIN TRANS -- Some update,set statements COMMIT TRANS ? 请注意,在某些异常或超时或其他一般故障的情况下,只需要回滚,则不会有条件的回滚原因. 解决方法BEGIN和END处理代码块.它们与您在许多语言中看到的大括号相似:if (somethingIsTrue) { // like BEGIN // do something here } // like END 在SQL中,这是: if somethingIsTrue BEGIN -- do something here END BEGIN TRAN,COMMIT和ROLLBACK开始和结束交易.他们没有指定新的代码块;它们只标记交易边界. 请注意,您可以在单独的代码块中写入BEGIN TRAN和COMMIT.例如,如果您希望代码成为事务的一部分,但如果代码已经在事务中,则不希望启动新的代码,则可以执行以下操作: declare @TranStarted bit = 0 if @@trancount = 0 begin set @TranStarted = 1 begin tran end -- ... do work ... if @TranStarted = 1 begin commit set @TranStarted = 0 end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容