Исправление: Появляется сообщение об ошибке в SQL Server 2008 при выполнении инструкции INSERT SELECT для таблицы: «нарушение ограничения PRIMARY KEY "<primarykey>". Не удается вставить повторяющийся ключ в объект "<tablename>" "</tablename></primarykey>

Переводы статьи Переводы статьи
Код статьи: 970507 - Vizualiza?i produsele pentru care se aplic? acest articol.
Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 файл с исправлениями. Так как исправления являются накопительными, каждый новый выпуск содержит все исправления, и все исправления, входившие в состав предыдущих SQL Server 2008 исправление выпуска.
Развернуть все | Свернуть все

В этой статье

Проблема

Рассмотрим описанную ниже ситуацию.:
  • У вас есть Microsoft SQL Server 2008 на многопроцессорном компьютере.
  • У вас естьВСТАВИТЬ, ВЫБЕРИТЕ ПУНКТИнструкция в таблице, которая содержит первичный ключ.

    Примечание.В диалоговом окнеВСТАВИТЬ, ВЫБЕРИТЕ ПУНКТоператор, таблицы, которая получает данные является той же таблицы, которая выводит данные. Например,:
    INSERT T1 … SELECT T1
  • Ссылки на другие таблицы, в этомВСТАВИТЬ, ВЫБЕРИТЕ ПУНКТоператор. Эти ссылки включает временную таблицу.

    Примечание.Ссылки на таблицы вОт:в условии во вложенном запросе или соединения ссылки на предложения или таблицы.
При выполнении оператора, появляется следующее сообщение об ошибке:

Сообщение 2627, уровень 14, состояние 1
Нарушение ограничения PRIMARY KEY "PrimaryKey:'. Не удается вставить повторяющийся ключ в объект "TableName'.

Если изучить план выполнения поиска,ОБЪЕДИНЕНИЕоператор,Упреждающая очередиоператор, параллельное выполнение. ФайлУпреждающая очередиоператор находится вОБЪЕДИНЕНИЕоператор. Кроме того таблицы, которая получает данные в инструкции является внутренней таблицей соединения.

Примечание.Эта проблема также возникает при запускеОБНОВЛЕНИЕ ВЫБОРКИоператор илиУДАЛЕНИЕ ВЫБОРАоператор.

Причина

Эта проблема возникает из-за ошибки в очереди печати дляУпреждающая очередиоператор, где очереди создает несколько строк, чем ожидалось. Это приводит к дублирующиеся ключевые проблемы.

Решение

Сведения о накопительном обновлении

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

Сведения об исправлении

Эта проблема может быть решена с помощью исправления, специально выпущенного корпорацией Майкрософт.. однако оно предназначено только для устранения проблемы, описанной в данной статье.. Предлагаемое исправление должно применяться исключительно в системах, где наблюдается описанная проблема.. Исправление может подвергаться дополнительному тестированию.. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего пакета служб SQL Server 2008, содержащего это исправление.

Чтобы получить данное исправление и решить проблему немедленно, обратитесь в службу поддержки пользователей Майкрософт.. Полный список телефонов службы поддержки пользователей корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=support
Примечание.В отдельных случаях, если специалистом службы технической поддержки Майкрософт будет определено, что решением проблемы является специально выпущенное исправление, оплата, предусмотренная за обращение в службы технической поддержки, может быть отменена.. Дополнительные услуги по технической поддержке, не связанные с данным исправлением, оплачиваются на стандартных условиях..

Предвартельные требования

Для установки этого исправления необходимо иметь компьютер, на котором выполняется SQL Server 2008 с пакетом обновления 1 (SP1).

Сведения о перезагрузке компьютера

После установки исправления перезагружать компьютер не требуется..

Сведения о внесении изменений в системный реестр

Нет изменений в реестр.

Сведения о файле исправления

Данное исправление содержит только те файлы, необходимые для устранения описанных в этой статье перечислены. Это исправление может содержать не все файлы, необходимые для полного обновления продукта до последней сборки..

Английская версия исправления содержит версии файлов, приведенные в следующей таблице (или более поздние).. Дата и время для файлов указаны во всеобщем скоординированном времени (UTC).. При просмотре сведений о файле, время изменяется на местное.. Чтобы узнать разницу между временем по Гринвичу и местным временем,Часовой поясна вкладкеДата и времяэлемент панели управления.
Для всех поддерживаемых x 86-разрядных версий СУБД SQL Server 2008
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
SqlAccess.dll2007.100.2712.0405,35213 Мая 2009 г.17: 53X86
Keyfile.dll2007.100.2712.013,65613 Мая 2009 г.15: 37X86
Sqlservr.exe2007.100.2712.042,729,32013 Мая 2009 г.17: 56X86
Для всех поддерживаемых x 86-разрядных версий служб аналитики SQL Server 2008
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
Msmdlocal.dll10.0.2712.023,461,72013 Мая 2009 г.16: 08X86
Msmdsrv.exe10.0.2712.021,955,41613 Мая 2009 г.16: 09X86
Keyfile.dll2007.100.2712.013,65613 Мая 2009 г.15: 37X86
Msmdpump.dll10.0.2712.06,180,69613 Мая 2009 г.16: 08X86
Msmdspdm.dll10.0.2712.0178,00813 Мая 2009 г.16: 08X86
Msmgdsrv.dll10.0.2712.08,558,93613 Мая 2009 г.16: 09X86
Msolap100.dll10.0.2712.06,532,95213 Мая 2009 г.16: 09X86
Для всех поддерживаемых 64-разрядных версий СУБД SQL Server 2008
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
SqlAccess.dll2007.100.2712.0412,00814 Мая 2009 г.01: 15X86
Keyfile.dll2007.100.2712.014,18413 Мая 2009 г.23: 55X64
Sqlservr.exe2007.100.2712.057,873,25614 Мая 2009 г.01: 17X64
Для всех поддерживаемых 64-разрядных версий служб аналитики SQL Server 2008
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
Msmdlocal.dll10.0.2712.023,461,72013 Мая 2009 г.16: 08X86
Msmdlocal.dll10.0.2712.044,436,82414 Мая 2009 г.00: 10X64
Msmdsrv.exe10.0.2712.043,713,36814 Мая 2009 г.00: 10X64
Keyfile.dll2007.100.2712.014,18413 Мая 2009 г.23: 55X64
Msmdpump.dll10.0.2712.07,430,48814 Мая 2009 г.00: 10X64
Msmdspdm.dll10.0.2712.0178,02414 Мая 2009 г.00: 10X86
Msmgdsrv.dll10.0.2712.08,558,93613 Мая 2009 г.16: 09X86
Msmgdsrv.dll10.0.2712.012,332,37614 Мая 2009 г.00: 11X64
Msolap100.dll10.0.2712.06,532,95213 Мая 2009 г.16: 09X86
Msolap100.dll10.0.2712.08,153,94414 Мая 2009 г.00: 11X64
Для всех поддерживаемых версий СУБД SQL Server 2008 на базе процессоров Itanium
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
SqlAccess.dll2007.100.2712.0398,69613 Мая 2009 г.17: 01X86
Keyfile.dll2007.100.2712.019,30413 Мая 2009 г.15: 26IA-64
Sqlservr.exe2007.100.2712.0111,042,40813 Мая 2009 г.17: 08IA-64
Для всех поддерживаемых версий служб аналитики SQL Server 2008 на базе процессоров Itanium
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файла:Дата:времяПлатформа
Msmdlocal.dll10.0.2712.023,461,72013 Мая 2009 г.16: 08X86
Msmdlocal.dll10.0.2712.057,508,18413 Мая 2009 г.15: 44IA-64
Msmdsrv.exe10.0.2712.058,860,88813 Мая 2009 г.15: 46IA-64
Keyfile.dll2007.100.2712.019,30413 Мая 2009 г.15: 26IA-64
Msmdpump.dll10.0.2712.08,943,44813 Мая 2009 г.15: 45IA-64
Msmdspdm.dll10.0.2712.0178,00813 Мая 2009 г.15: 45X86
Msmgdsrv.dll10.0.2712.015,485,80013 Мая 2009 г.15: 47IA-64
Msmgdsrv.dll10.0.2712.08,558,93613 Мая 2009 г.16: 09X86
Msolap100.dll10.0.2712.010,065,24013 Мая 2009 г.15: 47IA-64
Msolap100.dll10.0.2712.06,532,95213 Мая 2009 г.16: 09X86

Временное решение

Чтобы обойти эту проблему, установите в запросе подсказку MAXDOP или параметр MAXDOP для1в инструкции или на уровне сервера.

Примечание.Уровень сервера параметр MAXDOP влияет на производительность запросов, которые выполняются на сервере.

Статус

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

Ссылки

Для получения дополнительных сведений о последовательный модели обслуживания для SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
935897Последовательный модели обслуживания доступна группа разработчиков SQL Server для предоставления исправления для устранения неполадок


Для получения дополнительных сведений о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL Server


Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в следующей статье базы знаний Майкрософт::
824684Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Свойства

Код статьи: 970507 - Последний отзыв: 29 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
Ключевые слова: 
kbsurveynew kbfix kbqfe kbexpertiseadvanced kbHotfixServer kbmt KB970507 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:970507

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

 

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