sql存储过程编程带事务
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存储过程编程带事务的更多相关文章
- SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
		SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过 存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ... 
- PL/SQL存储过程编程
		PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ... 
- SQL 存储过程入门(事务)(四)
		SQL 存储过程入门(事务)(四) 本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我 ... 
- SQL Server中带事务的存储过程简单举例
		先来看一个概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.那么在存储过程里添加事务,则可以保证该事务里的所 ... 
- SQL Server  存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
		存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程 ... 
- SQL 存储过程入门(事务)
		本篇我们来讲一下事务处理技术. 为什么要使用事务呢,事务有什么用呢,举个例子. 假设我们现在有个业务,当做成功某件事情的时候要向2张表中插入数据,A表,B表,我们插入的顺序是先插入A,再插入B表,如果 ... 
- thinkphp3.2.3批量执行sql语句(带事务)
		/** * 事务封装方法 * @access public 将此方法放入框架model.class.php中 * @param array $sqls 要执行的sql数组或语句 * @param ar ... 
- SQL存储过程,使用事务(try catch),游标
		CREATE proc [dbo].[Sys_Rebate_Equity] AS )--用户ID ,)--总股权数 BEGIN begin try Begin Transaction --开始事务 D ... 
- sql存储过程循环实现事务
		//往一张表中添加数据,获取添加数据生成的ID,再往另一张表中添加多条数据 ALTER PROCEDURE [dbo].[AttendanceCardAndDetail_Add] @SchoolID ... 
随机推荐
- Asp.net Core Mvc  EF- Migrations使用
			Migragtion的命令,左边是手动命令,右边是代码方式 首先来看命令方式: 创建一个mvc项目,默认已经集成了EF包 创建的项目包含了Microsoft.AspNetCore.Identity.E ... 
- 钉钉调试应用Inspect不显示或显示空白的解决方法
			首先必须使用钉钉开发版,并确保已经通过此链接打开了调试功能: https://open-doc.dingtalk.com/docs/doc.htm?spm=5176.10694750.0.0.3tPH ... 
- windows程序设计 MessageBox消息框
			MessageBox函数 int WINAPI MessageBoxW( HWND hWnd,//窗口句柄 LPCWSTR lpText,//消息框主体显示的字符串 LPCWSTR lpCaption ... 
- Objective-C RunTime 学习笔记 之 基础结构体
			1.OC 运行期常用对象结构体 基本的结构体定义 typedef objc_class Class; /* 类 */ typedef objc_object *id; /* 各种类型,只要第一个字段为 ... 
- Flip Game (高斯消元 || dfs)
			Flip game is played on a rectangular 4x4 field with two-sided pieces placed on each of its 16 square ... 
- Ubuntu编译Android源码步骤
			Android4.4源码编译 需要准备以下文件: 源码包名:x4412_kitkat_rtm.tar.bz2 Jdk版本为jdk1.6.0_27 gcc 4.4 g++ 4.4 第一步:安装Ubunt ... 
- CSS 内边距 外边距
			CSS 内边距 外边距 <html> <!-- style="margin: 0 auto" 将网页上方空白边距填满--> <body style=& ... 
- mongodb主从(副本集附仲裁节点)部署带认证模式
			环境:OS:CentOS 7DB:3.0.15机器角色:192.168.1.134:10001 主192.168.1.135:10002 从192.168.1.135:10003 仲裁节点 1.下载相 ... 
- [C++ Primer Plus] 第7章、函数(一)程序清单——递归,指针和const,指针数组和数组指针,函数和二维数组
			程序清单7.6 #include<iostream> using namespace std; ; int sum_arr(int arr[], int n);//函数声明 void ma ... 
- css的再深入6(更新中···)
			background-position 雪碧图 我们的html和css中有三个属性可以向服务器发送请求,src href url. overflow (1) 值hidden 超出就隐藏 (2) 值s ... 
