CREATE PROCEDURE [dbo].[存储过程名字]
@错误参数_ErrorCode int output,
@参数1 int,
@参数2 varchar(20),
@参数3 varchar(20)
AS
--创建事务进行数据处理
begin tran Tran_XX
DECLARE @tran_error int;
SET @tran_error=0;
--查询数据库是否有要创建的临时表,如果有则删除
if OBJECT_ID('Test.dbo.#temptale1') is not null
begin
drop table #temptale1
end
if OBJECT_ID('Test.dbo.#temptale2') is not null
begin
drop table #temptale2
end
--尝试执行主体命令部分
begin try
update Company set  字段名称=@参数3 where id=@参数1
SET @tran_error = @tran_error + @@ERROR
select * into #temptable1 from 表1 where  字段名称=@参数3 and [State]=1;--临时表1
select * into #temptable2 from 表2 where 字段名称=@参数3;                       --临时表2
--修改临时表中的要修改的字段
update #temptable1 set 字段名称=@参数2
SET @tran_error = @tran_error + @@ERROR
update #temptable2 字段名称=@参数2
SET @tran_error = @tran_error + @@ERROR
--将临时表里的数据 插入到对应的表里
insert into 表1 select 字段1,字段2,,字段3,字段4 from #temptable1
SET @tran_error = @tran_error + @@ERROR
--测试部分(检查事务是否管用)
--SET @tran_error = @tran_error + 1
insert into 表2 select 字段1,字段2,,字段3,字段4,字段5,字段6,字段7 from #temptable2
SET @tran_error = @tran_error + @@ERROR
end try

begin catch
--出现错误@tran_error+1
SET @tran_error = @tran_error +1
end catch

if(@tran_error>0)
begin
--出现错误 回滚
rollback tran
--print '测试错误1'
end
else
begin
--正常执行
commit tran
end

--删除临时表
if OBJECT_ID('Test.dbo.#temptale1') is not null
begin
drop table #temptale1
end
if OBJECT_ID('Test.dbo.#temptale2') is not null
begin
drop table #temptale2
end
--返回回执
set @错误参数_ErrorCode=@tran_error

sql存储过程编程带事务的更多相关文章

  1. SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过     存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...

  2. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

  3. SQL 存储过程入门(事务)(四)

    SQL 存储过程入门(事务)(四)   本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ...

  4. SQL Server中带事务的存储过程简单举例

    先来看一个概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.那么在存储过程里添加事务,则可以保证该事务里的所 ...

  5. SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程 ...

  6. SQL 存储过程入门(事务)

    本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我们插入的顺序是先插入A,再插入B表,如果 ...

  7. thinkphp3.2.3批量执行sql语句(带事务)

    /** * 事务封装方法 * @access public 将此方法放入框架model.class.php中 * @param array $sqls 要执行的sql数组或语句 * @param ar ...

  8. SQL存储过程,使用事务(try catch),游标

    CREATE proc [dbo].[Sys_Rebate_Equity] AS )--用户ID ,)--总股权数 BEGIN begin try Begin Transaction --开始事务 D ...

  9. sql存储过程循环实现事务

    //往一张表中添加数据,获取添加数据生成的ID,再往另一张表中添加多条数据 ALTER PROCEDURE [dbo].[AttendanceCardAndDetail_Add] @SchoolID ...

随机推荐

  1. python frist lesson

    1.print("") 代表打印字符段 2.name2 = name ,然后改变name的赋值,name2的值还是以前name的值,说明name2指向的是内存中name的赋值. 3 ...

  2. php 实现简拼

    <blockquote>model::::::::::::::::::::::::::::: function getFirstCharter($str){if(empty($str)){ ...

  3. python模块化学习(一)

    import time #获取cpu的时间: #获取本地时间: #获取标准时间格式: #获取时间戳: #print(time.clock()) #这个在3即将被舍弃 print(time.proces ...

  4. sitecore开发入门之Sitecore字典结构最佳实践

    使用Sitecore时,一个重要的主题是如何为您的网站处理不同的语言和区域.Sitecore对此的回答是使用字典项,它基本上只代表键/值定义.但是,这个字典项可以设置为具有不同的语言版本,这几乎允许您 ...

  5. 16款优秀的Vue UI组件库推荐

    16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...

  6. vue深入响应式原理

    vue深入响应式原理 深入响应式原理 — Vue.jshttps://cn.vuejs.org/v2/guide/reactivity.html 注意:这里说的响应式不是bootsharp那种前端UI ...

  7. 清理Visual Studio 2017的项目历史记录或手工修改Visual Studio 2017的注册表设置

    Visual Studio 2017的"最近的文件列表"和"项目列表"总是删了之后重启电脑又出现(PS:这期间没有打开过项目,更没打开过VS). 一怒之下,按照 ...

  8. Dart基础-泛型和库

    https://blog.csdn.net/hekaiyou/article/details/46774727

  9. Java 解析Excel(xls、xlsx两种格式)

    Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...

  10. kruscal重构树略解

    我们先看一道题:Luogu P4197 Peaks 这道题珂以用启发式合并+主席树来做 那么强制在线呢?(bzoj 3551 [ONTAK2010]Peaks加强版) 离线做法就不行了 我们就要用一个 ...