1、前言
-》当进行一个增删改事务时,系统会默认加锁,查询时会出现执行等待,commit或rollback之后等待结束
2、事务
-》理解:保证一个多操作的事情全部成功执行完成,否则回滚到未任何操作之前的状态
只有数据改变(增加、修改、删除)时才会引发事务,查询不会引发事务
-》分类:
·显式事务:需要手动控制
·隐式事务:不需要手动操作,每条语句都是事务,mssqlserver默认采用此方式
-》满足事务的四个原则:原子性、一致性、隔离性、持久性
-》语法格式: bengin tran /*定义事务的开始*/
commit tran /*提交事务*/
rollback tran /*回滚事务,出错后执行*/
save tran /*在事务内设置保存点*/
例: begin try
begin tran
sql语句[块]
commit tran
end try
begin catch
rollback tran
end catch
3、并发控制
-》解释:当多个用户同时更新行时,用于保护数据库完整性的各种技术。
-》目的:保证一个用户的工作不会对另一个用户的工作产生不合理的影响。
-》并发带来的问题
--丢失修改
--脏读:一个事务访问并修改这个数据,但并未提交到数据库;另一个事务使用了这个还没有提交的数据(脏数据)。
--不可重复读:第一个事务多次读同一数据,第二个事务在第一事务读数据之间进行了修改,那么第一次事务多次读到数据可能是不一样。
--幻读:与不可重复读相似。
4、锁
-》解释:解决并发带来的问题,使并发的事务串行化,使各事务都按照某种次序来进行,从而消除相互干扰的一种机制。
详细解释:https://blog.csdn.net/u013444177/article/details/51760860