学习BEGIN TRAN ||COMMIT TRAN

今天在项目中用到了一个存储过程需要同时项三个表更新数据,如果其中一个有错,则将导致数据库数据不同步,为解决这一问题,查到了有BEGIN TRAN ||COMMIT TRAN方法可以解决~

 

在网上搜了一会,看到一个帖子很受益:内容如下:

 

帖子地址:http://topic.csdn.net/t/20031030/15/2410812.html

 

 

 

楼主问题:

我在使用   SqlServer   的时候遇到这样一个问题.  
   
  我打算用下面的语句:  
   
  begin   tran;  
   
  insert   into   TabA   values(1);  
   
  insert   into   TabB   values(1);  
   
  commit   tran;  
   
  想的是两个插入操作要么同时成功,   要么   rollback.  
   
  但我发现它的执行结构却是:  
   
  ------------------------------------------------------------------------------------  
  服务器:   消息   2627,级别   14,状态   1,行   1  
  违反了   PRIMARY   KEY   约束   'PK_tabA'。不能在对象   'TabA'   中插入重复键。  
  语句已终止。  
   
  (所影响的行数为   1   行)  
  ------------------------------------------------------------------------------------  
   
  第一条语句因为主键约束,   插入失败.  
   
  而第二条语句成功了.   faint.  
  如果这样的话,   那   begin   tran/commit   tran   语句还有什么用?  
   
  大侠们给指点指点吧.   谢谢啦.

 

***************************

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"SQL Server中的BEGIN TRAN是一个事务控制语句,它用于开始一个事务。 事务是一组SQL语句的逻辑单元,被作为一个整体进行提交或回滚。BEGIN TRAN命令指示SQL Server开始一个事务,并在后续的SQL语句中标识这个事务。 当我们在数据库中执行一系列操作时(例如插入、更新和删除数据),我们可能需要确保这些操作要么都执行成功,要么都不执行。这就是事务的用途之一。事务在以下情况下非常有用: - 当所执行的操作是相关联的,一个操作的成功与否可能会影响到其他操作。 - 当需要确保一组操作要么全部成功,要么全部失败,以维护数据的一致性。 BEGIN TRAN语句用于显式地开始一个事务。在BEGIN TRAN之后的SQL语句将被视为一个事务的一部分。在BEGIN TRANCOMMIT或ROLLBACK之间的SQL语句将作为一个原子操作执行。如果在事务开始之后的任何地方发生了错误,我们可以使用ROLLBACK命令回滚事务,撤销之前的所有操作。如果我们希望提交事务,即使发生错误,我们可以使用COMMIT命令。 事务的使用可以保证数据的完整性和一致性。它提供了一种机制来管理数据库操作的执行顺序和结果,使得数据库的操作更加可靠和可靠。 总结一下,BEGIN TRAN在SQL Server中是一个开始事务的命令,它用于将一组相关的SQL语句包装在一个事务中。这样可以确保一组操作的一致性和完整性,并提供了回滚或提交事务的机制,以满足数据库操作的要求。"

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值