Síntomas
Imagine la siguiente situación:
-
Tiene un procedimiento almacenado que crea una tabla temporal en Microsoft SQL Server.
-
Ejecute una consulta que el procedimiento almacenado emita y la consulta cumpla las siguientes condiciones:
-
Las referencias de consulta a la tabla temporal que ha creado el procedimiento almacenado.
-
La consulta tiene una cláusula WHERE que no está cubierta por ningún índice y la característica de índices perdidos está habilitada.
-
-
Supongamos que se llama al procedimiento almacenado de forma simultánea desde varias instancias. A continuación, se crean y eliminan las tablas temporales con frecuencia, lo que provocará la creación y la eliminación frecuentes de los registros correspondientes para los índices que faltan.
-
En este caso, si se cancela una consulta pendiente del procedimiento almacenado, es posible que reciba un error de infracción de acceso.
Resolución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Actualización acumulativa 2 para SQL Server 2017
Actualización acumulativa 9 para SQL Server 2016 RTM
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Actualización acumulativa más reciente de SQL Server 2017
Solución alternativa
La solución alternativa a este problema es habilitar la marca de seguimiento (TF) 2392 que suprimirá la colección de índices perdidos.
Más información
Para obtener más información sobre la característica de índices perdidos, consulte el siguiente vínculo:
Característica de índices perdidos
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga más información sobre la terminologíaque Microsoft usa para describir las actualizaciones de software.