KB2938460 – КОРЕКЦИЯ: Непозволен достъп възниква, когато се опитате да използвате datepart (работен ден) в първоначално компилирана съхранена процедура в SQL Server 2014

Отнася се за
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Симптоми

Да предположим, че използвате Microsoft SQL Server 2014. Когато се опитате да използвате datepart (работен ден) в първоначално компилирана съхранена процедура, има непозволен достъп до памет и връзката е прекратена. Освен това получавате следната грешка:

Забележка

Възникна сериозна грешка при текущата команда. Резултатите, ако има такива, трябва да бъдат отхвърлени.

Причина

Проблемът възниква поради неизправност в SQL Server 2014.
Използването на datepart с аргумент char въвежда неявно преобразуване в datetimeoffset. Основната съхранена процедура не поддържа datetimeoffset.

Решение

След като горещата поправка е приложена, SQL Server ще направи промяна, за да въведе нова логика за преобразуване на аргумента char в datetime2 за основна съхранена процедура и datetimeoffset за обикновена съхранена процедура и константно сгъване.
Проблемът е коригиран за първи път в следващата кумулативна актуализация на SQL Server.

Сборна актуализация 1 за SQL Server 2014 г. /bg-bg/help/2931693

За кумулативните актуализации за SQL Server

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:

      

Заобиколно решение

За да заобиколите проблема, явно преобразувайте в поддържан тип дата/час.

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.