Alcances de nivel de aislamiento de transacciones

¿Cuáles son las reglas de alcance para los niveles de aislamiento de transacciones en SQL Server 2005? Sé lo que significan los diferentes niveles, pero no cómo aplicarlos correctamente fuera de un script ejecutado manualmente. No puedo encontrar una guía para uso práctico en código de calidad de producción.

Obviamente, el alcance comienza cuando usas un comando como este:

<code>SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
</code>

Pero ¿dónde termina? Si configuro el nivel de iso en un procedimiento almacenado y luego ese proceso llama a otro, ¿el proceso anidado lo hereda? Aún mejor, si subo el nivel iso dentro del proceso anidado, ¿volverá al proceso llamante? ¿Los comandos de transacción como BEGIN TRAN, ROLLBACK y COMMIT hacen alguna diferencia?

Cuando una aplicación o un trabajo de agente llama a un proceso almacenado, ¿los cambios de nivel de aislamiento persisten de alguna manera? ¿Siempre tengo que volver al valor predeterminado LEER COMPROMETIDO al final de cada proceso?

Lo probaría en diferentes situaciones, pero no sé cómo se establece el nivel de aislamiento actual.

Respuestas a la pregunta(6)

Su respuesta a la pregunta