Síntomas
Supongamos que tiene una tabla de Microsoft SQL Server que tiene uno o varios índices integrados. Al realizar una consulta con la tabla, SQL Server puede realizar rellenos de datos incoherentes para las columnas CHAR y BINARY. El comportamiento incoherente para devolver los espacios en blanco finales al final de las columnas de datos CHAR y BINARY depende de las siguientes condiciones:
- La configuración de la ANSI_PADDING cuando se crean columnas en la tabla SQL Server.
- La decisión de realizar un análisis de tabla o una búsqueda de índice en las columnas.
Causa
En algunos escenarios, SQL Server puede realizar una optimización que le permita omitir muchas operaciones para una entrega de datos más rápida. El problema se produce porque SQL Server no reconoce que la optimización no se puede aplicar en el escenario anterior.
Más información
Este comportamiento de SQL Server no cumple con el comportamiento documentado en el artículo siguiente: Usar datos Char y Varchar.
Nota
Si ANSI_PADDING está ACTIVADO cuando se crea una columna char NULL, se comporta igual que una columna char NOT NULL: los valores se rellenan con el botón derecho del tamaño de la columna. Si ANSI_PADDING está DESACTIVADO cuando se crea una columna char NULL, se comporta como una columna varchar con ANSI_PADDING establecido OFF: se truncan los espacios en blanco finales.
Resolución
Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:
Actualización acumulativa 2 de SQL Server 2017
Actualización acumulativa 9 para SQL Server 2016
Actualización acumulativa 6 para SQL Server 2016 SP1
Actualización acumulativa 8 para SQL Server 2014 SP2
Actualización acumulativa 7 para SQL Server 2014 SP1
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 2017
Actualización acumulativa más reciente de SQL Server 2016
Actualización acumulativa más reciente de SQL Server 2014
Estado
Microsoft ha confirmado que se trata de un problema en los productos de Microsoft que aparecen en la sección "Se aplica a"
Referencias
Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.