• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > SQL事务用法begin tran,commit tran和rollback tran的用法

SQL事务用法begin tran,commit tran和rollback tran的用法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了begin_tran,commit_tran,rollbac等相关知识,希望本文的分享对您有所帮助

Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务。begin tran表示开始事务, commit tran表示提交事务,rollback tran表示回滚事物

具体用法如下:
代码如下:
-- =============================================
-- Author: cynimoon
-- Create date: 2009-10-09
-- Description: 示例存储过程
-- =============================================
-- EXEC TEST_PROC '文综','包括历史,地理,政治','政治','文综的一门'
CREATE PROCEDURE [dbo].[TEST_PROC]
@A_Name NVARCHAR(20), -- A表姓名
@A_Remark NVARCHAR(4000), -- A表备注
@B_Name NVARCHAR(20), -- B表姓名
@B_Remark NVARCHAR(4000) -- B表备注
AS
BEGIN TRY
BEGIN TRAN
-- 在A表中插入数据
INSERT INTO [dbo].[A]
( [A_Name]
, [A_Remark] )
VALUES
( @A_Name
, @A_Remark )
-- 在B表中插入数据
INSERT INTO [dbo].[B]
( [A_ID]
, [B_Name]
, [B_Remark] )
VALUES
( @@IDENTITY -- 返回最后插入的标识值
, @B_Name
, @B_Remark )
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
INSERT INTO [dbo].[ErrorLog]
( [EL_Procedure] -- 异常存储过程名称
, [EL_OperateTime] ) -- 报异常时间
VALUES
( 'TEST_PROC'
, CONVERT(DATETIME,GETDATE(),20) )
END CATCH

注:1. @@IDENTITY的作用是返回最后插入的标识值。
2. 我在rollback tran中加入一个专门记录异常的表,以便产于异常发生的时间和确定报异常的存储过程的名称。
原文链接:
begin tran 可以理解成新建一个还原点。
commit tran提交这个自begin tran开始的修改
rollback tran 表示还原到上个还原点。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQL事务用法begin tran,commit tran和rollback tran的用法

相关文章

  • 2018-12-05使用 MySQL5.7实现每秒50万的高性能查询
  • 2018-12-05对mysql中变量的详细介绍
  • 2017-05-11MySQL在关联复杂情况下所能做出的一些优化
  • 2018-12-05MySQL 数据库优化的具体方法说明
  • 2018-12-05Mysql row number()排序函数的用法和注意_MySQL
  • 2017-05-11探究MySQL优化器对索引和JOIN顺序的选择
  • 2018-12-05MySQL 用户权限详细汇总
  • 2018-12-05MySQL如何修改开启允许远程连接的实例详解
  • 2018-12-05有关事件分析内容的文章推荐
  • 2018-12-05关于MySQL中存储的全角字符以及半角字符的区别详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL的指定范围随机数函数rand()的使用技巧_MySQL
    • Centos7安装和配置Mysql5.7的方法分享
    • Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)问题解决方法
    • MySQL连接时出现1449与1045异常解决办法详解
    • mysql 优化(4)索引覆盖和最优索引
    • Mysql存储引擎之Memory存储引擎的介绍
    • mysql索引的设计和使用
    • 关于mysql5.7.17.msi的安装图文教程分享
    • MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (1)
    • 实例讲解sqlite迁移到mysql脚本的方法_

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有