with update tablock que para inner funcion sql sql-server locking

sql - update - Uso de WITH NOLOCK Table Sugerencia en la consulta mediante la vista: ¿se propaga dentro de la vista?



with nolock update (2)

Si se utiliza una sugerencia de consulta "WITH NOLOCK" en una vista en SQL Server, ¿se propaga esa sugerencia a la definición de la vista en sí misma, incluso si NOLOCK NO se utiliza para las tablas sin formato en la definición de la vista? La razón para necesitar esto es que a veces el personal de soporte desea hacer grandes consultas que requieren mucho tiempo, pero prefiere no forzar este bloqueo en todas las consultas que usan la vista dentro de la aplicación.


Solo para complementar la excelente respuesta de Rory.

Escribe "Sí, NOLOCK se propagará a las tablas utilizadas por la definición de vista (al menos en SQL Server 2005) ".

De hecho, esto también funcionará en SQL 2000. De BOL:

Debido a que select_statement usa la instrucción SELECT, es válido para usar y sugerencias como se especifica en la cláusula FROM. Para obtener más información, vea FROM y SELECT .


Sí, NOLOCK se propagará a las tablas utilizadas por la definición de la vista (al menos en SQL Server 2005).

Consulte Sugerencias de tabla en MSDN:

En SQL Server 2005, todos los consejos de bloqueo se propagan a todas las tablas y vistas a las que se hace referencia en una vista. Además, SQL Server realiza las comprobaciones de coherencia de bloqueo correspondientes.

Sin embargo,

Si una tabla contiene columnas calculadas y las columnas calculadas se calculan mediante expresiones o funciones que acceden a columnas en otras tablas, las sugerencias de la tabla no se utilizan en esas tablas. Esto significa que las sugerencias de la tabla no se propagan. Por ejemplo, una sugerencia de tabla NOLOCK se especifica en una tabla en la consulta. Esta tabla tiene columnas calculadas que se calculan mediante una combinación de expresiones y funciones que acceden a columnas en otra tabla. Las tablas a las que hacen referencia las expresiones y funciones no usan la sugerencia de la tabla NOLOCK cuando se accede a ellas.

Si usa vistas indexadas, es posible que desee leer un poco más, ya que también hay casos especiales allí.

Ver también Resolución de Vista para más información.