Ознаки
Припустімо, що у вас є оператор оновлення , який посилається на функцію неіснуючої функції, використовуючи ключове слово $PARTITION в Microsoft SQL Server 2014, 2016 або 2017. Наприклад,
ОНОВЛЕННЯ TableName Set columname= ' XYZ ', де $PARTITION. Нефункціональна функція (назва _ columtname) = 1
У цій ситуації SQL Server не виконує оновлення або повертає повідомлення про помилку, яке вказує на те, що об'єкт неіснуючий елемент не існує. Проте з точки зору користувача здається, що інструкція з оновлення виконується успішно, але насправді це не вдалося.
Причина
Під час виконання пакета, SQL Server може виконувати відповідний дозвіл на відкладене ім'я (DNR). У цьому процесі SQL Server не відразу створює помилку, коли він зустрічає неіснуючий об'єкт, і він очікує, що об'єкт буде створено модулем або пакетного перед виконанням цієї заяви, що посилається на цей об'єкт. Для функцій розділу SQL Server не обробляє DNR належним чином.
Додаткові відомості
Докладні відомості про DNR наведено в статті роздільна здатність до відкладеного імені.
Спосіб вирішення
Ця проблема усунена в таких сукупних оновлень для SQL Server:
Сукупне оновлення 8 для SQL Server 2016 SP1
Сукупне оновлення 4 для SQL Server 2017
Сукупне оновлення 9 для SQL Server 2014 з пакетом оновлень 2 (SP2)
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Найновіше Сукупне оновлення для SQL Server 2016
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Посилання
Відомості про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.