开发者社区> 问答> 正文

SQL Server数据库锁-选择不带锁

我们有几个调用其他视图的视图。如果父视图从带有NOLOCK的子视图中选择,但是子视图缺少 NOLOCK,这会导致锁定吗?

IE浏览器:

视图1:

select * from view2 WITH (NOLOCK)

VIEW2:

select * from hugetable

从view1中进行选择是否会有效地忽略,NOLOCK因为view2的定义中缺少它?

展开
收起
祖安文状元 2020-01-03 16:32:40 498 0
1 条回答
写回答
取消 提交回答
  • 这很容易测试。

    设定

    CREATE DATABASE Testing
    
    GO
    
    ALTER DATABASE Testing SET READ_COMMITTED_SNAPSHOT  OFF
    
    GO
    
    USE Testing 
    
    GO
    
    CREATE TABLE dbo.Demo(X int);
    
    INSERT INTO dbo.Demo VALUES (1), (2), (3);
    
    go
    
    CREATE VIEW dbo.[Inner] AS 
    SELECT *
    FROM dbo.Demo
    
    GO
    
    CREATE VIEW dbo.[Outer] AS 
    SELECT *
    FROM dbo.[Inner]
    WITH (NOLOCK)
    
    2020-01-03 16:32:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载