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 ...
随机推荐
- Cocos Creator 鼠标事件
鼠标事件// 使用枚举类型来注册node.on(cc.Node.EventType.MOUSE_DOWN, function (event) {console.log('Mouse down');}, ...
- 揭开yield关键字的神秘面纱
写在前言 经常会看见,python函数中带有yield关键字,那么yield是什么,有什么作用? 答案:可以理解yield是一个生成器: 作用:遇到yield关键字,函数会直接返回yield值,相当于 ...
- 爬虫出现Forbidden by robots.txt(转载 https://blog.csdn.net/zzk1995/article/details/51628205)
先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决. 使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息F ...
- JaCoCo在Tomcat服务器上监控代码覆盖率的使用方法
简介 Jacoco是一个开源的覆盖率工具.Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序.很多第三方的工具提 ...
- Python3.0以上版本在对比图片相似中的应用
首先声明一下,代码是从网上找到的,只是本人作以简单的修改. 请大家尊重原创. 我本地用到的是 Python 3.4 以及 Pillow (4.0.0) 第三方包. 方法一. #!/usr/bin ...
- visio studio删除空行
一.Ctrl+H 打开替换框 二.在替换框中的源中输入 ^(?([^\r\n])\s)*\r?$\r?\n
- 【Spark-core学习之九】 Spark案例
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- 安装GDB-ImageWatch ,在QT中查看图像
GDB_ImageWatch是在Linux下基于QT编写图像处理程序的调试程序. 由于并非像ImageWatch一样由官方提供,而是在github上以代码的方式进行提供,我们在使用的时候需要自己编译, ...
- java Encryption&Decryption
The encryption class: package cn.com.smartcost.qy.util; import java.security.Key; import java.securi ...
- linux 因内存不足而 kill 掉 java 程序
grep "Out of memory" /var/log/messages Sep 17 16:13:34 xxxaaa kernel: Out of memory: Kill ...