KB2490920 - ИСПРАВЛЕНА: ошибка "Msg 2601, уровень 14, состояние 1, строка 1 не удается вставить строку дублирующегося ключа" при выполнении инструкции ALTER PARTITION FUNCTION для разделения или слияния диапазона разделов в SQL Server 2005 или SQL Server 2008

Применяется к
Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Workgroup Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup

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

Проблема

Рассмотрим следующий сценарий.

  • Вы устанавливаете экземпляр Microsoft SQL Server 2005 или SQL 2008 на компьютере.
  • Вы создаете секционированную таблицу, содержащую некластеризованный индекс, который не выровнен.
  • Вы запускаете инструкцию ALTER PARTITION FUNCTION, чтобы разделить или объединить диапазон секций для секционированной таблицы.

В этом сценарии периодически появляется следующее сообщение об ошибке:

Примечание

MSG 2601, уровень 14, состояние 1, строка 1
Невозможно вставить строку повторяющегося ключа в объекте< objectname> с уникальным индексом<, uniqueindexname>.

Причина

Эта проблема возникает из-за того, что в оптимизаторе запросов возникает ошибка при разделении диапазона разделов.

Когда план среды выполнения удаляет и вставляет несколько строк из затронутого диапазона раздела в новый диапазон раздела, происходит нарушение уникального ключа.

Решение

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

SQL Server 2005 с пакетом обновления 3 (SP3)

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 15 для SQL Server 2005 с пакетом обновления 3 (SP3). Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2507766 Накопительный пакет обновления 15 для SQL Server 2005 с пакетом обновления 3 Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2005 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

960598 Сборки SQL Server 2005 г., выпущенные после выпуска SQL Server 2005 с пакетом обновления 3 (SP3) для Microsoft SQL Server 2005 предназначены для определенных пакетов обновления SQL Server. Необходимо установить исправление для SQL Server 2005 с пакетом обновления 3 (SP3) для установки SQL Server 2005 с пакетом обновления 3 (SP3). По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

SQL Server 2005 с пакетом обновления 4 (SP4)

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 2 для SQL Server 2005 с пакетом обновления 4. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2489409 Накопительный пакет обновления 2 для SQL Server 2005 с пакетом обновления 4 Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2005 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2485757 Сборки SQL Server 2005 г., выпущенные после выпуска SQL Server 2005 с пакетом обновления 4 (SP4) для Microsoft SQL Server 2005 предназначены для определенных пакетов обновления SQL Server. Необходимо установить исправление для SQL Server 2005 с пакетом обновления 4 (SP4) для установки SQL Server 2005 с пакетом обновления 4. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

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

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 13 для SQL Server 2008 с пакетом обновления 1. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2497673 Накопительный пакет обновления 13 для SQL Server 2008 с пакетом обновления 1 (SP1Note) Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

970365 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1) Исправления для Microsoft SQL Server 2008 предназначены для определенных пакетов обновления SQL Server. Необходимо установить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) для установки SQL Server 2008 с пакетом обновления 1. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

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

Исправление для этой проблемы впервые было выпущено в накопительном пакете обновления 3 для SQL Server 2008 с пакетом обновления 2. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

2498535 Накопительный пакет обновления 3 для SQL Server 2008 с пакетом обновления 2 (SP2) Так как сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

2402659 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 2 (SP2) Исправления для Microsoft SQL Server 2008 предназначены для определенных пакетов обновления для SQL Server. Необходимо применить исправление SQL Server 2008 с пакетом обновления 2 (SP2) для установки SQL Server 2008 с пакетом обновления 2. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

Состояние

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

Ссылки

Дополнительные сведения об инструкции Transact-SQL ALTER PARTITION FUNCTION см. на следующем веб-сайте MSDN:

Общие сведения об операторе Transact-SQL ALTER PARTITION FUNCTION Дополнительные сведения о специальных рекомендациях для секционированных индексов см. на следующем веб-сайте MSDN:

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

935897 Команда SQL Server предоставляет модель добавочного обслуживания для предоставления исправлений для обнаруженных проблем

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

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

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