Recibe un mensaje de error "error 605" cuando ejecuta una consulta con la sugerencia de optimizador o establece el nivel de aislamiento de la transacción para leer no confirmado en SQL Server


Resumen


Ejecutar una consulta con la sugerencia de optimizador o configurar el nivel de aislamiento de la transacción para leerla, puede generar mensajes de error transitorios de 605.

Más información


Normalmente, se deniega el acceso a los datos modificados por otro usuario o proceso a causa de los bloqueos que se colocan en los datos. Sin embargo, los comandos NOLOCK y READ UNCOMMITTED permiten que una consulta Lea datos que están bloqueados por otro usuario. Esto se conoce como una lectura sucia porque puede leer valores que aún no se han confirmado y están sujetos a cambio. Cuando una consulta que usa NOLOCK o READ no confirmada intenta leer datos que otro usuario está moviendo o modificado, se produce un error 605. El nivel de gravedad de los errores 605 producidos durante una operación de lectura sucia es de 12 en comparación con el nivel de gravedad 21 al leer datos confirmados. Si se produce un error de 605 que tiene un nivel de gravedad de 12, lo más probable es que sea un error transitorio de 605 y no se indica un problema de coherencia de la base de datos. Para comprobar que se trata de un error transitorio de 605, vuelva a ejecutar la consulta más adelante. Si el error persiste, quite la sugerencia NOLOCK o establezca el nivel de aislamiento de la transacción como READ COMMITTED y compruebe que no se produzca un nivel de gravedad de 605. Un error de nivel 21 de 605 indica posibles daños en la base de datos. Si se produce un error de 605 nivel 21, consulte los libros en línea de SQL Server para obtener más información y póngase en contacto con el proveedor de soporte técnico principal para obtener más ayuda.