20141113--SQL 事务
---------------------触发器----------------------------- --触发器本质上还是一个存储过程,trigger --只不过不是通过exec调用执行,而是通过增删改查数据库的操作来触发 --针对主外键表操作时 将关联的表一起修改 --触发器 方便记忆的命名格式:Tr(缩写)_(表名)_(增/删/改) --instead of 在...之前 等于 替换操作,只执行触发器里面的语句 --for (after) 在...之后 先执行语句在执行触发器内的语句 select *from Student--学生信息alter trigger Tr_student_delete on student instead of delete asdelete from score where sno=109delete from Student where Sno=109 go delete from Student where Sno=109--------------------参数------------------------- create trigger tr_dongtai on teacher instead of delete as begindeclare @tno char(10)set @tno=(select tno from deleted)--deleted虚拟表,update teacher set tname='刘燕' where tno=@tno end go drop trigger tr_dongtai select * from Teacher delete from Teacher where Tno='804' ----------------------------------------- create trigger tr_teacher_insert on teacher for insert as begindeclare @tno varchar(50)set @tno =(select tno from inserted)delete from teachar where tno=@tno end --------------------禁用,开启 alter table teacher disable trigger all--禁用所有触发器 alter table teacher enable trigger all--开启所有触发器 --all改成触发器名 可以开启或禁用单个触发器--------------------------------- select *from Teacher--教师信息 select *from Course--课程信息 select *from Score--分数,课程 select *from Student--学生信息 ----------------------事务------------------------ --if @@error>0 每一句语句后可以加一个if,然后跟上goto 直接跳转到这里(事务名) --如果只在最后加if,则尝试执行完所有的命令语句,如果有错则回滚事务。 --goto TranRollBack(goto 后面只是一个事务名) begin tran--开始事务,每个语句都会尝试执行, insert into student values ('111','张三','男','1988-1-8','95033') if @@error>0--@@error 上一次的错误,0表示没错,不等于0表示有错 goto Back--goto,跳转到.(事务名).地方 insert into Course values ('3-105','语文','804') if @@error>0 goto Back insert into score values ('111','3-105',98) if @@error>0 begin --如果任何一条有错误 则回滚事务,等于没有执行过这些语句 Back:--事务名 rollback tran--回滚事务, end else--没有错误 begin commit tran --提交 end
----------------------------------------------
消息输出:
(1 行受影响) --尝试插入了一行数据,但是后面有的语句出错,所以回滚事务, 表没有收到影响
消息 2627,级别 14,状态 1,第 5 行
违反了 PRIMARY KEY 约束 'PK__Course__C1FE637307020F21'。不能在对象 'dbo.Course' 中插入重复键。
语句已终止。
转载于:https://www.cnblogs.com/Tirisfal/p/4095041.html
20141113--SQL 事务相关推荐
- 【概念原理】四种SQL事务隔离级别和事务ACID特性
2019独角兽企业重金招聘Python工程师标准>>> 事务是一组读写操作,并且具有只有所有操作都成功才算成功的特性. 事务隔离级别 SQL事务隔离级别由弱到强分别是:READ_UN ...
- 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁
阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. ...
- (4.12)全面解析-SQL事务+隔离级别+阻塞+死锁
30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 转自:https://blog.csdn.net/slowlifes/article/details/52752735 2016年10月07日 23 ...
- [转]SQL事务回滚的问题及其解决的方法
[转]SQL事务回滚的问题及其解决的方法 原文:http://shirlly.javaeye.com/blog/370973 Begin Transaction:开始一个事务: Commit Tran ...
- SQL事务与ADO.NET事务
1 SQL事务 sql事务是使用SQL server自身的事务:在存储过程中直接使用Begin Tran,Rollback Tran,Commit Tran实现事务: 优点:执行效率最佳 限制: ...
- (六)sql事务的处理commit,rollback的用法总结
(六)sql事务的处理commit,rollback的用法总结 1. 事务处理 事务的存在是为了保持数据的一致性.要么全做,要么全不做. mysql中数据是自动提交的,可以使用set autocomm ...
- sql 事务提交和回滚_SQL提交和回滚
sql 事务提交和回滚 The most important aspect of a database is the ability to store data and the ability to ...
- sql事务(Transaction)用法介绍及回滚实例
sql事务(Transaction)用法介绍及回滚实例 事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务, S ...
- SQL 事务及实例演示
简介 事务,英文名称是transaction.是在对数据库进行管理操作过程中一个逻辑单位,由有限的操作序列构成. 其实这个概念很好懂,简单理解就是:事务就是在使用数据库中的一个操作,由一些操作放到一起 ...
- SQL 事务日志已满
SQL 事务日志已满: alter database Featechdata set recovery simple
最新文章
- 一文告诉你,如何使用Python构建一个“谷歌搜索”系统 | 内附代码
- Linux入门第四集!Jar包的入门、使用、部署!怎么打Jar包?
- python数学建模基础教程_Python数学建模极简入门(二)差分方程
- react native与webview通信跳转页面报错:Cannot read property 'setNativeProps' of undefiend
- java有什么字符串_Java 中操作字符串都有哪些类?它们之间有什么区别
- 机器人动力学与控制_大负载协作机器人难关怎么攻克?3大技术细节解析!
- 多模态之ViLBERT:双流网络,各自为王
- 最新微软Windows Server 2008之一 系统安装
- 计算机系大学生为什么选择在CSDN写博客?
- Python读写Excel实现大量数据处理
- 打印机如何扫描纸转换成pdf
- js实现类似栈和队列的行为,以及push和unshift两个方法的性能测试
- so 对XXX未定义的引用
- 数据结构与算法_c#_猎豹网校
- mysql必知必会的数据_MySQL必知必会--汇 总 数 据
- 触目惊心!2017年化工行业事故203起死亡238人!附重大事件回顾
- 《算法笔记》总结及练习
- BIEE Hello World式的例子
- 如何快速做一个微信自动拉群机器人 足够简单 足够粗暴
- 计算机毕业设计(附源码)python医院疫情管理系统