KB3208245 – КОРЕКЦИЯ: Неправилен резултат от заявката, когато използвате променливата varchar(max) в условие за търсене в SQL Server 2014 или 2016

Отнася се за
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1

Симптоми

Имайте предвид сценария, описан по-долу:

  • Изпълнявате заявка, която съдържа условие за търсене с най-малко два предиката за равенство върху една и съща колона със знак с ограничен размер (като използвате клауза OR или IN).
  • Вие дефинирате променлива varchar(max) и я използвате в един или повече предикати за равенство, описани по-горе.
  • В заявката трябва да посочите подсказване за заявката RECOMPILE.

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

Решение

Проблемът е коригиран в следната кумулативна актуализация на SQL Server:

Препоръка: Инсталирайте най-новата кумулативна актуализация за SQL Server

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

 

Състояние

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

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.