KB2938460 - CORRECCIÓN: se produce una infracción de acceso cuando intenta usar datepart (weekday) en un procedimiento almacenado compilado de forma nativa en SQL Server de 2014

Se aplica a
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Síntomas

Supongamos que usa Microsoft SQL Server 2014. Al intentar usar DatePart (día de la semana) en un procedimiento almacenado compilado de forma nativa, se produce una infracción de acceso y se finaliza la conexión. Además, recibe el siguiente error:

Nota

Se ha producido un error grave en el comando actual. Los resultados, si los hay, deben descartarse.

Causa

El problema se produce debido a un defecto en SQL Server 2014.
El uso de datepart con un argumento char introduce una conversión implícita a datetimeoffset. El procedimiento almacenado nativo no admite datetimeoffset.

Resolución

Después de aplicar la revisión, SQL Server realizará un cambio para introducir una nueva lógica para convertir el argumento char en datetime2 para el procedimiento almacenado nativo y datetimeoffset para el procedimiento almacenado normal y el plegado constante.
Este problema se corrigió por primera vez en la siguiente actualización acumulativa de SQL Server.

Actualización acumulativa 1 para SQL Server 2014 /en-us/help/2931693

Acerca de las actualizaciones acumulativas para SQL Server

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:

      

Solución alternativa

Para solucionar este problema, conviértalo explícitamente a un tipo de fecha y hora compatible.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".