SQL SERVER的事务SQL语句
2015-09-28 13:10
288 查看
常用语句就四个。
Begin Transaction:标记事务开始。
Commit Transaction:事务已经成功执行,数据已经处理妥当。
Rollback Transaction:数据处理过程中出错,回滚到没有处理之前的数据状态,或回滚到事务内部的保存点。
Save Transaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。
上面的都是心法,下面的给你来个招式,要看仔细啦。
Begin Transaction:标记事务开始。
Commit Transaction:事务已经成功执行,数据已经处理妥当。
Rollback Transaction:数据处理过程中出错,回滚到没有处理之前的数据状态,或回滚到事务内部的保存点。
Save Transaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。
上面的都是心法,下面的给你来个招式,要看仔细啦。
---开启事务 2 begin tran 3 --错误扑捉机制,看好啦,这里也有的。并且可以嵌套。 4 begin try 5 --语句正确 6 insert into lives (Eat,Play,Numb) values ('猪肉','足球',1) 7 --Numb为int类型,出错 8 insert into lives (Eat,Play,Numb) values ('猪肉','足球','abc') 9 --语句正确 10 insert into lives (Eat,Play,Numb) values ('狗肉','篮球',2) 11 end try 12 begin catch 13 select Error_number() as ErrorNumber, --错误代码 14 Error_severity() as ErrorSeverity, --错误严重级别,级别小于10 try catch 捕获不到 15 Error_state() as ErrorState , --错误状态码 16 Error_Procedure() as ErrorProcedure , --出现错误的存储过程或触发器的名称。 17 Error_line() as ErrorLine, --发生错误的行号 18 Error_message() as ErrorMessage --错误的具体信息 19 if(@@trancount>0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务 20 rollback tran ---由于出错,这里回滚到开始,第一条语句也没有插入成功。 21 end catch 22 if(@@trancount>0) 23 commit tran --如果成功Lives表中,将会有3条数据。 24 25 --表本身为空表,ID ,Numb为int 类型,其它为nvarchar类型 26 select * from lives
相关文章推荐
- mysql 操作 指南
- MySql批量更新方法
- Redis的安装和启动
- MySql批量更新方法
- ORACLE学习之九 Oracle 字符集的查看和修改 (转帖)
- mysql创建存储过程 定时调用
- PL/SQL Developer ORA-12154: TNS: 无法解析指定的连接标识符
- mysql 定时执行存储过程
- 数据库管理系统(DBMS)的概述
- Oracle根据SQL_ID批量收集真实执行计划
- 使用反射的方法实现JDBC数据库连接与事物
- Mongodb3.0 UserManager
- 编写数据库常用的增、删、改、查代码(1)。
- MySql修改表结构
- 连接数据库工具类调用程序
- MySQL InnoDB MVCC实现原理
- 允许远程用户登录访问mysql的方法
- SQL Server 游标运用:查看数据库所有表大小信息
- mongodb的简单使用二(结合springdata实现增删改查)
- oracle锁表