2009-06-11 43 views
8

如果您在VIEW中的select中包含NOLOCK,那麼NOLOCK是否向下傳播到視圖中加入的表中?如果沒有,鎖定VIEW的目的是什麼?在視圖上NOLOCK,它傳播到表?

樣品查看代碼:

CREATE VIEW [my_custom_view] 
AS 
    SELECT 
    a1.[column_a], a1.[column_b], a1.[column_c], a1.[column_d] 
    FROM 
    [table_a] a1 
    JOIN [table_b] b1 ON b1.[column_a] = a1.[column_b] 

而且NOLOCK聲明:

SELECT 
    [column_a], [column_b] 
FROM 
    [my_custom_view] NOLOCK 
+0

我假設SQL Server 2000,因爲2005年和更高版本不支持該鎖定提示的語法。 – 2009-06-11 15:07:32

+0

@Joel SQL 2005確實支持這個 – cjk 2009-06-11 15:51:51

回答

0

爲什麼不只是添加NOLOCK到視圖定義是什麼?這樣你不需要明確地將其添加到視圖

2

NOLOCK經常會導致不正確的結果,您可以使用快照隔離嗎?

相關問題