代码之家  ›  专栏  ›  技术社区  ›  Jim G.

在UPDATE语句中,FROM子句中是否遵循NOLOCK提示?

  •  4
  • Jim G.  · 技术社区  · 14 年前

    UPDATE @TableVariable
    SET city = T2.city
    FROM @TableVariable TV
    INNER JOIN dbo.TABLE_1 T1 WITH (NOLOCK)
        ON  (TV.customer_id = T1.customer_id)
    INNER JOIN dbo.TABLE_2 T2 WITH (NOLOCK)
        ON  (T1.address_id = T2.address_id)
    

    表1和表2上的(NOLOCK)提示是否会得到遵守?

    2 回复  |  直到 14 年前
        1
  •  8
  •   Quassnoi    14 年前

    表1和表2上的(NOLOCK)提示是否会得到遵守?

    注意,一般来说,这种行为是 非常错误

    什么是目的 NOLOCK 提示?为什么要用脏数据更新表变量?

        2
  •  1
  •   Badiboy    14 年前

    NoLock提示几乎可以以任何方式提高服务器生产率。但是(NOLOCK)提示可以安全地使用,当访问数据时,可以保证不发生变化(例如,一旦数据部分被发布到数据库,它将保持不变,或者您知道当前的数据部分不会被其他用户更改),或者如果取用旧数据或新数据(例如,一些数据)并不重要经常更改,而且不需要保存最新的)。 另一方面,您可能会得到不同表中数据的差异。。。