Applies ToSQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2008 R2 Developer

Корпорація Майкрософт поширює виправлення Microsoft SQL Server 2008 як один файл для завантаження. Оскільки виправлення сукупно, у кожному новому випуску містяться всі виправлення та всі виправлення системи безпеки, які були включені до попередньої версії SQL Server 2008 Fix Release.

Ознаки

Розглянемо наведений нижче сценарій.

  • У вас є запит, який використовує функцію ROW_NUMBER разом із лівим зовнішнім об'єднанням в Microsoft SQL Server 2008.

  • Ви створюєте оператор Select , який використовує запит як підзапит, і повертає унікальні рядки, використовуючи різні ключові слова.

  • Ви запускаєте цей оператор Select .

У цьому сценарії може з'явитися неправильний результат. Ліве зовнішнє об'єднання неправильно пропущено.Примітка. Щоб отримати докладні відомості про те, як відтворити цю проблему, ознайомтеся з розділом "дії з відтворення цієї проблеми" в розділі "Додаткові відомості".

Спосіб вирішення

Відомості про Сукупне оновлення

SQL Server 2008 R2

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 6. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета для SQL Server 2008 R2, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:

2489376 Сукупний пакет оновлень пакета 6 для SQL Server 2008 R2 Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 R2 Fix Release. Радимо застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:

981356 Випущено SQL Server 2008 R2, випущеній після випуску SQL Server 2008 R2

SQL Server 2008 із пакетом оновлень 1

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 11 для SQL Server 2008 Service Pack 1. Щоб отримати докладні відомості про цей пакет накопичувальне оновлення, клацніть номер статті в базі знань Microsoft Knowledge Base:

2413738 Сукупний пакет оновлень пакета 11 для SQL Server 2008 Service Pack 1Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 Fix Release. Корпорація Майкрософт рекомендує застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:

970365 Випущено SQL Server 2008, що випущено після випуску пакета оновлень 1 (SP1) для SQL Server 2008 Поточні виправлення Microsoft SQL Server 2008 створюються для певних пакетів оновлень для сервера SQL Server. Щоб інсталювати пакет оновлень 1 (SP1) для SQL Server 2008, потрібно виконати термінове виправлення в SQL Server 2008 Service Pack 1. За замовчуванням будь-яке термінове виправлення, яке надається в пакеті оновлень SQL Server, включено до наступного пакета оновлень служби SQL Server.

SQL Server 2008 із пакетом оновлень 2

Виправлення для цієї проблеми уперше випущено в сукупному оновленні 2 для SQL Server 2008 Service Pack 2. Щоб отримати докладні відомості про цей пакет накопичувальне оновлення, клацніть номер статті в базі знань Microsoft Knowledge Base:

2467239 Сукупний пакет оновлень пакета 2 для SQL Server 2008 Service Pack 2Примітка. Оскільки будує сукупну версію, кожен новий випуск Fix містить всі виправлення та виправлення безпеки, які були включені до попередньої версії SQL Server 2008 Fix Release. Корпорація Майкрософт рекомендує застосувати найновішу версію виправлення, що містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:

2402659 Інстальовано пакет оновлення SQL Server 2008, який було випущено після випуску служби SQL Server 2008 Service Pack 2 Поточні виправлення Microsoft SQL Server 2008 створюються для певних пакетів оновлень для сервера SQL Server. Щоб інсталювати пакет оновлень 2 для SQL Server 2008, потрібно додати пакет оновлень 2 для SQL Server 2008. За замовчуванням будь-яке термінове виправлення, яке надається в пакеті оновлень SQL Server, включено до наступного пакета оновлень служби SQL Server.

Стан

Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".

Додаткові відомості

Дії з відтворення цієї проблеми

  1. Виконайте наведені нижче твердження. Ці твердження створюють дві таблиці та вставляйте дані в таблиці.

    create table A (a1 int)create table B (b1 int)insert into A values(1)insert into B values(1)insert into B values(1)
  2. Виконайте наведені нижче інструкції. У цій заяві використовується функція ROW_NUMBER разом із лівим зовнішнім об'єднанням.

    select a1, row_number() over (partition by a1 order by a1) as a3from Aleft join B ON A.a1 = B.b1
  3. Виконайте наведені нижче інструкції. У цій заяві використовується запит на кроці 2 як підзапит:

    select distinct a1, a3from (      select a1, row_number() over (partition by a1 order by a1) as a3      from A      left join B ON A.a1 = B.b1) as x

Примітка.Запит на кроці 3 повертає неправильний результат після виникнення цієї проблеми.

Посилання

Щоб отримати докладні відомості про функцію ROW_NUMBER та зовнішні об'єднання, перейдіть на веб-сайт MSDN (Microsoft).

Щоб отримати докладні відомості про модель інкрементного обслуговування для SQL Server, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:

935897 Модель інкрементного обслуговування доступна з команди SQL Server, щоб доставити виправлення для повідомляли про проблемиЩоб отримати докладні відомості про схему іменування для оновлень SQL Server, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:

822499Нова схема іменування для пакетів оновлень програмного забезпечення Microsoft SQL ServerЩоб отримати докладніші відомості про термінологію оновлення програмного забезпечення, клацніть номер статті в базі знань Microsoft Knowledge Base:

824684 Опис стандартної термінології, яка використовується для опису оновлень програмного забезпечення Microsoft

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.