Síntomas
Suponga que tiene una consulta que realiza algunas operaciones de cadena, por ejemplo, concatenar, en columnas CHAR o VARCHAR en Microsoft SQL Server 2014, 2016 y 2017. Tenga en cuenta el siguiente escenario:
- Concatena columnas con distintas intercalaciones asignadas.
- Esas intercalaciones son incompatibles entre sí. Por ejemplo, intenta concatenar una columna intercalada como Latin1_General_CI_AI con Latin1_General_BIN.
- El resultado final de la concatenación se asigna a una intercalación específica (incluida "database_default") como cuestión de la resolución de conflictos de intercalación.
En este escenario, SQL Server puede devolver una aserción comercial que indique "Comparación no válida debido a NINGUNA INTERCALACIÓN", y es posible que reciba algunos mensajes de error similares a los siguientes:
Nota
Ubicación: typinfo.cpp:Número Line
Expresión: false
SPID: SPID
Id. del proceso: Id. de proceso
Descripción: comparación no válida debido a NINGUNA INTERCALACIÓN.Msg 3624, Level 20, State 1, LineNumber
Se ha producido un error en una comprobación de aserción del sistema. Compruebe el registro de errores SQL Server para obtener más información. Normalmente, un error de aserción se debe a un error de software o a daños en los datos. Para comprobar si hay daños en la base de datos, considere la posibilidad de ejecutar DBCC CHECKDB. Si aceptaste enviar volcados a Microsoft durante la instalación, se enviará un mini volcado a Microsoft. Una actualización puede estar disponible de Microsoft en el Service Pack más reciente o en una revisión del soporte técnico.Msg 596, Level 21, State 1, LineNumber
No se puede continuar la ejecución porque la sesión está en estado de eliminación.Msg 0, Level 20, State 0, LineNumber
Se ha producido un error grave en el comando actual. Los resultados, si los hay, deben descartarse.
Causa
Durante la fase de optimización de consultas, SQL Server intenta calcular cardinalidades en resultados intermedios de varias fases de la consulta, por ejemplo, la concatenación. Dado que la resolución de conflictos de intercalación tiene lugar en el extremo mismo, el optimizador de consultas puede no ser consciente de ello e intenta realizar el cálculo de la cardinalidad de concatenación en una entrada con intercalación en conflicto.
Resolución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Actualización acumulativa 8 para SQL Server 2016 SP1
Actualización acumulativa 4 de SQL Server 2017
Actualización acumulativa 9 para SQL Server 2014 SP2
Acerca de las actualizaciones acumulativas para SQL Server:
Cada nueva actualización acumulativa de SQL Server contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Echa un vistazo a las últimas actualizaciones acumulativas de SQL Server:
Actualización acumulativa más reciente de SQL Server 2016
Actualización acumulativa más reciente de SQL Server 2017
Actualización acumulativa más reciente de SQL Server 2014
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Referencias
Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.