Симптоми
Да предположим, че имате команда UPDATE, която препраща към несъществуваща функция на дял с помощта на ключовата дума $PARTITION в Microsoft SQL Server 2014, 2016 или 2017. Например
Забележка
UPDATE TableName SET columnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1
В тази ситуация SQL Server не извършва актуализация и не връща съобщение за грешка, за да посочи, че обектът NonExistingPartitionFunction не съществува. От потребителска гледна точка обаче изглежда, че командата UPDATE се изпълнява успешно, но всъщност е неуспешна.
Причина
Когато изпълните партида, SQL Server може да извърши отложеното преобразуване на имена (DNR). В този процес SQL Server не създава незабавно грешка, когато се натъкне на несъществуващ обект, и очаква, че обектът ще бъде създаден от модула или партидата преди изпълнението на командата, която препраща към този обект. За функциите на дялове SQL Server не обработва DNR правилно.
Повече информация
За повече информация относно DNR вижте "Отложено преобразуване на имена".
Решение
Този проблем е решен в следните кумулативни актуализации за SQL Server:
Сборна актуализация 8 за SQL Server 2016 SP1
Сборна актуализация 4 за SQL Server 2017
Сборна актуализация 9 за SQL Server 2014 SP2
За кумулативните актуализации за SQL Server:
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
Последна сборна актуализация за SQL Server 2016
Последна сборна актуализация за SQL Server 2017
Последна сборна актуализация за SQL Server 2014
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Справки
Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.