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

时间:2016-10-27 23:29:15

标签: sql sql-server database isolation-level

标题可能难以阅读。

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

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

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

是否已提交读取或未提交读取?

由于

1 个答案:

答案 0 :(得分:1)

  

我有一个观点:my_view(读取已提交)

不,视图没有相关的隔离级别,正如您所暗示的那样。视图只是一个存储的查询。并且该查询将在您运行它时生效的任何隔离级别执行。

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