2009-06-11 55 views
8

Si incluye un NOLOCK en una selección desde una VISTA, ¿ese NOLOCK se propaga hacia abajo en las tablas unidas dentro de la vista? Si no, ¿cuál es el propósito de bloquear una VISTA?NOLOCK en Vistas, ¿se propaga a las tablas?

opinión de la muestra Código:

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] 

Y la declaración NOLOCK:

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

Supongo que SQL Server 2000, porque 2005 y posteriores no admiten esa sintaxis para la pista de bloqueo. –

+0

@Joel SQL 2005 admite este – cjk

+1

posible duplicado de [Uso de WITH NOLOCK Table Hint en la vista de consulta: ¿Propaga dentro de la vista?] (Http://stackoverflow.com/questions/311429/using-with-nolock- table-hint-in-query-using-view-does-it-propagate-within-the) –

Respuesta

0

¿Por qué no añadir nolock a la definición de la vista? de esta forma no es necesario agregarlo explícitamente a la vista

2

NOLOCK frecuentemente causa resultados incorrectos, ¿Se puede usar el aislamiento de instantáneas en su lugar?

Cuestiones relacionadas