2009-06-11 1 views
8

Se si include un NOLOCK su una selezione da una VISTA, NOLOCK si propaga nelle tabelle unite all'interno della vista? In caso contrario, qual è lo scopo di bloccare una VISTA?NOLOCK su Views, si propaga alle tabelle?

campione Visualizza codice:

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] 

E la dichiarazione NOLOCK:

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

Sto assumendo SQL Server 2000, perché 2005 e versioni successive non supportano tale sintassi per il suggerimento di blocco. –

+0

@Joel SQL 2005 supporta questo possibile – cjk

+1

duplicato di [Utilizzo del suggerimento tabella WITH NOLOCK in Query Using View - Propagate all'interno della vista?] (Http://stackoverflow.com/questions/311429/using-with-nolock- table-hint-in-query-using-view-fa-it-propagate-within-the) –

risposta

0

Perché non basta aggiungere nolock alla definizione della vista? in questo modo non è necessario aggiungerlo esplicitamente alla vista

2

NOLOCK causa spesso risultati non corretti, è possibile utilizzare invece l'isolamento dell'istantanea?