SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程名 as select * from authors --执行存储过程 exec mypro --exec表示执行存储过程 创建有参存储过程 create proc sp_select @cid int, @str nvarchar(20) output -- output表示出参,没有默认进参 as select @str=name from c where id=@cid 执行存储过程 declare @str nvarchar(20) --declare表示定义变量 exec sp_select 4 ,@str output print @str 带事务的存储过程 存储过程中使用事务 存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 1、事务 存储过程使用try…catch捕获错误 Create Procedure sp_cunchuguocheng @aname nvarchar(20),--后面一定标大小,默认为 @bstu nvarchar(20), @bkm nvarchar(20), @bcj nvarchar(20), @cid int, @cname nvarchar(20) AS BEGIN begin transaction begin try insert into a (name)values(@aname) insert into b (stuid,km,cj)values(@bstu,@bkm,@bcj) insert into c(id,name) values(@cid,@cname) commit transaction end try begin catch print '错误' rollback transaction end catch end GO exec st_insert '','aaa','aaa','','aaa'--存储过程的使用方法 2、set XACT_ABORT ON 事务 Create Procedure sp_cunchuguocheng @aname nvarchar(20),--后面一定标大小,默认为 @bstu nvarchar(20), @bkm nvarchar(20), @bcj nvarchar(20), @cid int, @cname nvarchar(20) AS BEGIN set Nocount on --当SET NOCOUNT 为ON 时,不返回计数(计数表示受Transact-SQL 语句影响的行数,例如在Sql server查询分析器中执行一个delete操作后,下方窗口会提示()Rows Affected)。当 SET NOCOUNT 为OFF 时,返回计数,我们应该在存储过程的头部加上SET NOCOUNT ON 这样的话,在退出存储过程的时候加上SET NOCOUNT OFF这样的话,以达到优化存储过程的目的。 set XACT_ABORT ON --使用存储过程执行事物,需要开启XACT_ABORT参数(默认值为Off),将该参数设置为On,表示当执行事务时,如果出错,会将transcation设置为uncommittable状态,那么在语句块批处理结束后将回滚所有操作;如果该参数设置为Off,表示当执行事务时,如果出错,出错的语句将不会执行,其他正确的操作继续执行。 begin transaction --事务开始 insert into a (name)values(@aname) insert into b (stuid,km,cj)values(@bstu,@bkm,@bcj) insert into c(id,name) values(@cid,@cname) commit transaction --提交事务 end GO exec sp_cunchuguocheng '','','','',5,'' 3事务内设置保存点 Create Procedure MyProcedure AS Begin Set NOCOUNT ON; Set XACT_ABORT ON; begin tran ok --开始一个事务OK delete from rxqz where qz= 'rx015 ' --删除数据 save tran bcd --保存一个事务点命名为bcd update sz set name='李丽s' where name= '李丽'--修改数据 if @@error<>0 --判断修改数据有没有出错 begin --如果出错 rollback tran bcd -- 回滚事务到BCD 的还原点 commit tran ok --提交事务 end else --没有出错 commit tran ok --提交事务 End 链接 转载连接:http://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737298.html(部分内容为转载) 删除存储过程 drop proc sp_select 修改存储过程 alter procedure mypro as select au_lname,au_fname from authors
转载:http://blog.sina.com.cn/s/blog_66f673740101oy67.html
SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过的更多相关文章
- SQL Server中带事务的存储过程简单举例
先来看一个概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.那么在存储过程里添加事务,则可以保证该事务里的所 ...
- SQL SERVER 自带系统存储过程分类
目录存储过程 用于实现 ODBC 数据字典功能,并隔离 ODBC 应用程序以使其不受基础系统表更改的影响. 变更数据捕获存储过程 用于启用.禁用.或报告变更数据捕获对象. 游标存储过程 用于实现游标变 ...
- SQL Server中的事务与锁
了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁: ...
- 【转】SQL Server中的事务与锁
SQL Server中的事务与锁 了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂 ...
- 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架
简介 SQL Server中的事务日志无疑是SQL Server中最重要的部分之一.因为SQL SERVER利用事务日志来确保持久性(Durability)和事务回滚(Rollback).从而还部分确 ...
- 第16周翻译:SQL Server中的事务日志管理,级别3:事务日志、备份和恢复
源自: http://www.sqlservercentral.com/articles/Stairway+Series/73779/ 作者: Tony Davis, 2011/09/07 翻译:刘琼 ...
- 十五、SQL Server中的事务与锁
(转载别人的内容,值得Mark) 了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不 ...
- SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- (转)深入sql server中的事务
原文地址:http://www.cnblogs.com/chnking/archive/2007/05/27/761209.html 参考文章:http://www.cnblogs.com/zhuif ...
- (4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务)
(4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务) 1.概念:隐式事务,显式事务,自动提交事务 2.操作:如何设置事务模式 3.存储过程中的事务 XACT_ABORT 1 ...
随机推荐
- 【DMQ引擎】-DMQ多进程插件引擎服务平台介绍
写过服务端项目的程序员可能都有非常痛苦的经历,服务端经常奔溃,无从查起.的确一个服务端要稳定下来要经过长期的积累,不停的测试,调试,发现问题,解决问题.这个周期可能很长,几个月,甚至以年计算.许多企业 ...
- LearnOpenGL 你好,三角形[转]--附源码
原地址:你好,三角形 你好,三角形 原文 Hello Triangle 作者 JoeyDeVries 翻译 Django 校对 Geequlim 译注 在学习此节之前,建议将这三个单词先记下来: 顶点 ...
- filezilla修改默认21端口
一.filezilla修改端口21 1.修改ftp端口号,例如我们想把21修改成888 2.修改数据端口号为N-1,即888-1=887 3.防火墙中开启端口888和887 完成一个FTP的传输过程不 ...
- ubuntu+nginx+laravel
1, 到http://v4.golaravel.com/docs/4.2/installation 点击下载最新版Laravel框架.然后解压 2,把laravel-master下的文件夹拷入到php ...
- 数据库表名最大长度(Oracle=30;SqlServer=128;)
1.Oracle 数据库 (支持30个字符) --30个字符 CREATE TABLE Tab_Test1234567890abcdefghijkl( ts int ); --select * fro ...
- php中文语义分析
最近公司有个需求要做文章关键词提取,发现有个波森语义分析,还不错,把其http接口封装了一下, 发布到packagist上了. 简介 简单的封装了BosonNLP中文语义识别的api. 安装 comp ...
- Web Application Stress 对网站进行压力测试
打开Microsoft web Application Stress工具按下图顺序操作: 1. 2.点击Record 3. 4.在浏览器中输入要测试的URI地址 5.在设置中设置参数,如发起请求线程数 ...
- azkaban安装
1.下载:git clone https://github.com/azkaban/azkaban.git 2.编译:./gradlew build -x test 3. 创建目录并拷贝 mkdir ...
- 简介vsftpd及搭建配置 关闭selinux 不能创建文件
简介vsftpd及搭建配置一.简介 FTP(文件传输协议)全称是:Very Secure FTP Server. Vsftpd是linux类操作系统上运行的ftp服务器软件. vsftp提供三种登陆方 ...
- 百度地图Api进阶教程-弹出信息窗口5.html
<!DOCTYPE html> <html> <head> <meta name="viewport" content="ini ...