ИСПРАВЛЕНИЕ: Неверные результаты при выполнении инструкции INSERT ВЫБЕРИТЕ UNION ALL в 2008 г. SQL Server или SQL Server 2008 R2

Переводы статьи Переводы статьи
Код статьи: 2530921 - Vizualiza?i produsele pentru care se aplic? acest articol.

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 г. Корпорация Майкрософт SQL Server 2008 R2 пакетом обновления 1 как один загружаемый файл. Так как исправления являются накопительными, каждый выпуск содержит все исправления и исправить все исправления безопасности, которые были включены в предыдущие SQL Server 2008 с пакетом обновления 1 или SQL Server 2008 R2 выпуска.
Развернуть все | Свернуть все

В этой статье

Проблема

При запуске INSERT SELECT UNION ALL оператор в 2008 г. SQL Server или SQL Server 2008 R2, результаты выполнения инструкции могут быть неправильными, если таблица источника ВЫБЕРИТЕ как целевой таблицы, используется предложение ВСТАВКА предложение.

Например выполните следующие инструкции для создания четырех таблиц:
CREATE TABLE [TabA] (M VARCHAR(20), W VARCHAR(20)) CREATE TABLE [TabB] (M VARCHAR(20), W VARCHAR(20), R VARCHAR(20)) CREATE TABLE [TabC] (P VARCHAR(6), M CHAR(20), A NUMERIC(13)) CREATE TABLE [TabD] (P VARCHAR(6), W VARCHAR(20), M VARCHAR(20), D NUMERIC(13), E DATETIME, F DATETIME)
Вставка некоторых значений в Вкладке, TabB, и TabD таблицы, а затем выполните следующую команду: INSERT SELECT UNION ALL инструкции:

INSERT INTO [TabC] (P, M, A) SELECT T1.P,T1.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabA] T2 ON (T1.M = T2.M AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) UNION ALL SELECT T1.P,T2.M,T1.D / SUM(1) OVER(PARTITION BY P) FROM [TabD] T1 INNER JOIN [TabB] T2 ON (T1.M = T2.R AND T1.W = T2.W) WHERE NOT EXISTS (SELECT * FROM [TabC] E1 WHERE T1.P = E1.P) GO
В этом случае получить неверные результаты и некоторые записи не неправильно вставлен в TabC Таблица.

Решение

Накопительное обновление информации

SQL Server 2008 R2

Исправление этой уязвимости первого выпуска в накопительное обновление 9. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2 обратитесь к следующей статье Microsoft Knowledge Base:
2567713 Накопительный пакет обновлений 9 SQL Server 2008 R2
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправлений содержит все исправления и исправить все исправления безопасности, которые были включены в предыдущие 2008 R2 SQL Server выпуска. Мы рекомендует вам установить самую последнюю версию исправления, содержащего это исправление. Для получения дополнительных сведений обратитесь к следующей статье Microsoft Knowledge Base:
981356 SQL Server 2008 R2 построений, выпущенных после SQL Server 2008 R2

SQL Server 2008 R2 с пакетом обновления 1

Исправление этой уязвимости первого выпуска 2 накопительные обновления для пакета обновления 1 (Sp1) для SQL Server 2008 R2. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления обратитесь к следующей статье Microsoft Knowledge Base:
2567714 Накопительный пакет обновления 2 для SQL Server 2008 R2 с пакетом обновления 1
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправлений содержит все исправления и исправить все исправления безопасности, которые были включены в предыдущие 2008 R2 SQL Server выпуска. Мы рекомендует вам установить самую последнюю версию исправления, содержащего это исправление. Для получения дополнительных сведений обратитесь к следующей статье Microsoft Knowledge Base:
2567616 SQL Server 2008 R2 построений, выпущенных после пакета обновления 1 (Sp1) для SQL Server 2008 R2

SQL Server 2008 с пакетом обновления 2

Исправление этой проблемы была выпущена 5 накопительное обновление для пакета обновления 2 (SP2) для SQL Server 2008. Для получения дополнительных сведений о этот накопительный пакет обновления обратитесь к следующей статье Microsoft Knowledge Base:
2555408 Накопительный пакет обновления 5 для пакета обновления 2 (SP2) для SQL Server 2008 г.
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправлений содержит все исправления и исправить все исправления безопасности, которые были включены в предыдущие 2008 SQL Server выпуска. Корпорация Майкрософт рекомендует применение самую последнюю версию исправления, содержащего это исправление. Для получения дополнительных сведений обратитесь к следующей статье Microsoft Knowledge Base:
2402659 2008 SQL Server выполняется построение, выпущенных после пакета обновления 2 (SP2) для SQL Server 2008 г.
Исправления Microsoft SQL Server 2008 создаются для определенного SQL Server пакеты. Для установки пакета обновления 2 (SP2) для SQL Server 2008, необходимо установить исправление пакета обновления 2 (SP2) для SQL Server 2008 г. По умолчанию все исправления в пакет SQL Server включено в следующий пакет SQL Server.

SQL Server 2008 Service Pack 1 накопительное обновление 14

Исправление этой уязвимости первого выпуска накопительного обновления 14 SQL Server 2008 с пакетом обновления (1). Для получения дополнительных сведений о этот накопительный пакет обновления обратитесь к следующей статье Microsoft Knowledge Base:
2527187 Накопительный пакет обновления 14 SQL Server 2008 с пакетом обновления (1)
Примечание Поскольку построения являются накопительными, каждый новый выпуск исправлений содержит все исправления и исправить все исправления безопасности, которые были включены в предыдущие 2008 SQL Server выпуска. Корпорация Майкрософт рекомендует применение самую последнюю версию исправления, содержащего это исправление. Для получения дополнительных сведений обратитесь к следующей статье Microsoft Knowledge Base:
970365 2008 SQL Server выполняется построение, выпущенных после пакета обновления 1 (Sp1) для SQL Server 2008 г.
Microsoft SQL Server 2008 исправления создаются для определенного SQL Server пакеты. Для установки пакета обновления 1 (Sp1) для SQL Server 2008, необходимо установить исправление SQL Server 2008 с пакетом обновления 1. По умолчанию все исправления в пакет SQL Server включено в следующий пакет SQL Server.

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Относится к».

Свойства

Код статьи: 2530921 - Последний отзыв: 15 августа 2011 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Ключевые слова: 
kbqfe kbexpertiseadvanced kbsurveynew kbfix kbmt KB2530921 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2530921

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com