事务和锁
①脏读:事务A读到事务B尚未提交的数据,并基于这个数据进行后续操作
②不可重复读:事务A读取数据后,被事务B修改或删除,事务A再次读取时前后两次读取的数据不一致
③幻像读:事务A读取数据后,事务B新增了数据,事务A再次读取是前后两次读取的数据不一致
1 :ReadUncommitted,可以进行脏读,即使一项操作未做完或未提交,其他操作也可以读取未提交的数据。
2: ReadCommitted,它是SQLServer的默认隔离级别,此级别可确保只有在第一个事务提交之后,第二个事务才能读取第一个事务操作后的数据,从而避免数据的脏读,增强了数据安全性
3:RepeatableRead,这个级别扩展了ReadCommitted级别,即对正在访问的数据加上放置锁,其他操作将不能修改这些数据,确保数据的可重复读取,但是其他操作可以添加数据
4 :Serilizable,这是最高的事务处理级别,它将阻止修改本事务所查询的数据的任何操作,由于对正在访问的数据加了额外的锁定,因此将会降低整个数据操作性能。