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. Asp.net Core Mvc EF- Migrations使用

    Migragtion的命令,左边是手动命令,右边是代码方式 首先来看命令方式: 创建一个mvc项目,默认已经集成了EF包 创建的项目包含了Microsoft.AspNetCore.Identity.E ...

  2. 钉钉调试应用Inspect不显示或显示空白的解决方法

    首先必须使用钉钉开发版,并确保已经通过此链接打开了调试功能: https://open-doc.dingtalk.com/docs/doc.htm?spm=5176.10694750.0.0.3tPH ...

  3. windows程序设计 MessageBox消息框

    MessageBox函数 int WINAPI MessageBoxW( HWND hWnd,//窗口句柄 LPCWSTR lpText,//消息框主体显示的字符串 LPCWSTR lpCaption ...

  4. Objective-C RunTime 学习笔记 之 基础结构体

    1.OC 运行期常用对象结构体 基本的结构体定义 typedef objc_class Class; /* 类 */ typedef objc_object *id; /* 各种类型,只要第一个字段为 ...

  5. Flip Game (高斯消元 || dfs)

    Flip game is played on a rectangular 4x4 field with two-sided pieces placed on each of its 16 square ...

  6. Ubuntu编译Android源码步骤

    Android4.4源码编译 需要准备以下文件: 源码包名:x4412_kitkat_rtm.tar.bz2 Jdk版本为jdk1.6.0_27 gcc 4.4 g++ 4.4 第一步:安装Ubunt ...

  7. CSS 内边距 外边距

    CSS 内边距 外边距 <html> <!-- style="margin: 0 auto" 将网页上方空白边距填满--> <body style=& ...

  8. mongodb主从(副本集附仲裁节点)部署带认证模式

    环境:OS:CentOS 7DB:3.0.15机器角色:192.168.1.134:10001 主192.168.1.135:10002 从192.168.1.135:10003 仲裁节点 1.下载相 ...

  9. [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组

    程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ...

  10. css的再深入6(更新中···)

    background-position  雪碧图 我们的html和css中有三个属性可以向服务器发送请求,src href url. overflow (1) 值hidden 超出就隐藏 (2) 值s ...