Ознаки
Припустимо, що ви виконуєте запит із агрегатами та об'єднанням (наприклад, за допомогою функції "ГРУПУВАТИ за") у таблиці за допомогою відфільтрованого індексу на сервері SQL Server, який використовується як віддалений сервер, і користувач не має дозволу на визначення подання. У цьому сценарії на зв'язаному сервері вважається Фільтрований індекс як повний унікальний індекс, а запит повертає неправильні результати.
Додаткова інформація
Під час запуску віддаленого запиту процес, пов'язаний із сервером, використовує метадані індексу для оптимізації запиту. Якщо у вас немає дозволу на визначення подання для бази даних, метадані не вказують на те, що індекс – це Фільтрований індекс, а оптимізатор запитів вважає, що індекс має бути повним унікальним індексом. Це виправлення виправляє метадані індексу для відфільтрованого індексу, якщо у вас немає дозволу на подання визначення для розгляду за допомогою оптимізатора запитів.
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Спосіб вирішення
Ця проблема усунена в таких сукупних оновлень для SQL Server:
НотаткиЦе виправлення має застосовуватися до віддаленого зв'язаного сервера.
Відомості про накопичувальне оновлення для сервера SQL Server:
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Інші способи вирішення
Щоб вирішити цю проблему, виконайте одну з наведених нижче способів.
-
Видалення відфільтрованого індексу.
-
Визначення подання гранту для користувача. EX: визначення подання ГРАНТУ для test_user;
Посилання
Відомості про термінологію , яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.