如T,所有操作都在一个事务中,读取的时候的隔离级别是readUncommited,为什么读出来的记录不是空的。而我在修改了此记录,再读的话,发现数据确实修改了。
------解决方案--------------------
read uncommitted这种隔离级别,最多就是应用在查询报表的时候,对数据不需要太准确的地方。
而一般都是采用默认的隔离级别:read committed的。
------解决方案--------------------
使用readUncommited可以读到事务中的更改,为什么能读出来已经删除的数据呢?
这个read uncommitted,就是读未提交,既然是未提交,那么就是不确定的状态,可能会读出,也可能不会读出的。
另外,用select * from tb with(nolock) 那么也会导致,有时候读出来的数据更多,有时候读出来的更少。
那这样的话,renUncommited的有什么意义呢?我以为它就是读取事务中已经执行的操作结果,因为这些操作虽然执行,但是没有应用到DB,DB中的还是事务开始前的状态。