在存储过程级别设置时,视图的隔离级别是多少?

What is the view's isolation level when you set in stored procedure level?

标题可能难以阅读。

场景是这样的:我有一个视图my_view(默认情况下,它将被读取提交)。然后我刚刚创建了一个新的存储过程:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
select *
from table1
inner join my_view

现在,当然,table1 将被读取为未提交,但是 my_view 呢?

是读提交还是读未提交?

谢谢

I have a view: my_view (read committed)

不,正如您似乎暗示的那样,该视图没有关联的隔离级别。视图只是一个存储的查询。该查询将在您 运行 时以任何有效的隔离级别执行。

因此,如果从将隔离级别设置为 read uncommitted(您的示例)的存储过程中查询您的视图,那么查询将以该隔离级别执行,就这么简单。