Ознаки
Припустімо, що у вас є інструкція UPDATE, що посилається на неіснуючу функцію розділу за допомогою ключового слова $PARTITION в Microsoft SQL Server 2014, 2016 або 2017. Наприклад,
Примітка.
UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1
У цій ситуації SQL ServerSQL Server не оновлює та не повертає повідомлення про помилку, яке вказує на те, що об'єкт NonExistingPartitionFunction не існує. Однак, з точки зору користувача, здається, що оператор UPDATE виконується успішно, але насправді він зазнав невдачі.
Причина
Коли виконується пакет, SQL ServerSQL Server може виконувати розпізнавання відкладених імен (DNR). У цьому процесі SQL Server не відразу створює помилку, коли стикається з неіснуючим об'єктом, і очікує, що об'єкт буде створено модулем або пакетом до виконання оператора, який посилається на цей об'єкт. Що стосується функцій розділів, SQL Server не обробляє DNR належним чином.
Додаткові відомості
Докладні відомості про DNR див. в статті «Розпізнавання імен із затримкою».
Спосіб усунення проблеми
Цю проблему вирішено в наведених нижче сукупних оновленнях для SQL ServerSQL Server:
Сукупний пакет оновлень 8 для SQL ServerSQL Server 2016 SP1
Сукупний пакет оновлень 4 для SQL ServerSQL Server 2017
Сукупний пакет оновлень 9 для SQL ServerSQL Server 2014 SP2
Відомості про сукупні оновлення для SQL ServerSQL Server :
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Перегляньте останні сукупні оновлення для SQL Server.
Останнє сукупне оновлення для SQL ServerSQL Server 2016
Останнє сукупне оновлення для SQL ServerSQL Server 2017
Останнє сукупне оновлення для SQL ServerSQL Server 2014
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".
Посилання
Дізнайтеся, за допомогою яких термінів корпорація Майкрософт описує оновлення програмного забезпечення.