我猜这是一个非常基本且有些奇怪的问题。假设我有一个包含INSERT
(或MERGE
)语句的存储过程,后跟SELECT
语句。
在运行INSERT
时,我是否可以始终假设SELECT
语句已完成写入/提交数据?是否可以预期SELECT
语句(有时)不会选择所有最近插入的行?如果是这样,我有什么选择让SELECT
语句等待INSERT
语句完成(在存储过程中)或包括可能未提交的数据?
答案 0 :(得分:0)
如果它在同一个会话中,它将会看到它,无论是否已提交,除非它已被回滚。
一旦提交,其他会话就可以看到它。
答案 1 :(得分:0)
如果选择'是来自不同的会话,你想读取未提交的数据
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED