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 ...
随机推荐
- python frist lesson
1.print("") 代表打印字符段 2.name2 = name ,然后改变name的赋值,name2的值还是以前name的值,说明name2指向的是内存中name的赋值. 3 ...
- php 实现简拼
<blockquote>model::::::::::::::::::::::::::::: function getFirstCharter($str){if(empty($str)){ ...
- python模块化学习(一)
import time #获取cpu的时间: #获取本地时间: #获取标准时间格式: #获取时间戳: #print(time.clock()) #这个在3即将被舍弃 print(time.proces ...
- sitecore开发入门之Sitecore字典结构最佳实践
使用Sitecore时,一个重要的主题是如何为您的网站处理不同的语言和区域.Sitecore对此的回答是使用字典项,它基本上只代表键/值定义.但是,这个字典项可以设置为具有不同的语言版本,这几乎允许您 ...
- 16款优秀的Vue UI组件库推荐
16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...
- vue深入响应式原理
vue深入响应式原理 深入响应式原理 — Vue.jshttps://cn.vuejs.org/v2/guide/reactivity.html 注意:这里说的响应式不是bootsharp那种前端UI ...
- 清理Visual Studio 2017的项目历史记录或手工修改Visual Studio 2017的注册表设置
Visual Studio 2017的"最近的文件列表"和"项目列表"总是删了之后重启电脑又出现(PS:这期间没有打开过项目,更没打开过VS). 一怒之下,按照 ...
- Dart基础-泛型和库
https://blog.csdn.net/hekaiyou/article/details/46774727
- Java 解析Excel(xls、xlsx两种格式)
Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...
- kruscal重构树略解
我们先看一道题:Luogu P4197 Peaks 这道题珂以用启发式合并+主席树来做 那么强制在线呢?(bzoj 3551 [ONTAK2010]Peaks加强版) 离线做法就不行了 我们就要用一个 ...