开发者社区> 问答> 正文

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

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

IE浏览器:

视图1:

select * from view2 WITH (NOLOCK)

VIEW2:

select * from hugetable

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

展开
收起
祖安文状元 2020-01-03 16:32:40 482 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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载