Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2005, Microsoft SQL Server 2008 и Microsoft SQL Server 2008 R2 как один файл для загрузки. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и все исправления для системы безопасности, которые были включены в предыдущую версию SQL Server 2005, SQL Server 2008 или SQL Server 2008 R2.
Проблемы
Рассмотрим следующий сценарий.
-
Вы включаете параметр ALLOW_SNAPSHOT_ISOLATION для базы данных Microsoft sql Server 2005, Microsoft sql Server 2008 или Microsoft sql Server 2008 R2.
-
Вы выполняете операцию управления версиями над таблицей. Например, вы обновляете таблицу.
-
Вы отключаете уровень изоляции моментальных снимков в базе данных.
-
Вы обновляете столбец ключа индекса для записи, содержащей сведения о версиях.
-
Вы перестройте онлайновый индекс в таблице.
В этом случае возникает ошибка утверждения, и в журнале ошибок SQL Server появляются следующие сообщения:
<дата><время> <SPID> * начало дампа стека: <дата><время> <spid> * <дата><время> <SPID> <Дата><время> <SPID> * <дата><время> <SPID> * расположение: AppendOnlyVerStoreMgr. cpp: 731> <0 Дата><время> <SPID> * выражение: 0> <6 Дата><время> <SPID> * SPID : <SPID><Date><время> <SPID>> <0 время><> <Дата е spid идентификатор процесса: 6328 Status = 3<дата><время> <spid> * <Дата><время> <spid> 170 spid * DateДата<время>< идентификатор SPID> <* ALTER INDEX> <имя таблицы с>м " Index изменить индекс" Time
Причина
Эта проблема возникает из-за того, что информация о версии для новой записи ключа индекса копируется из старой записи ключа индекса. Таким образом, при перестроении индекса возникает ошибка.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 5. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:
2438347 Накопительный пакет обновления 5 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
SQL Server 2005 с пакетом обновления 4
Исправление для этой проблемы впервые выпущено в накопительном обновлении 1 для SQL Server 2005 с пакетом обновления 4 (SP4). Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2464079 Накопительный пакет обновления 1 для SQL Server 2005 с пакетом обновления 4Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2005. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2485757 Сборки SQL Server 2005, выпущенные после выпуска пакета обновления 4 (SP4) для SQL Server 2005 Исправления Microsoft SQL Server 2005 создаются для конкретных пакетов обновления для SQL Server. Для установки пакета обновления 4 (SP4) для SQL Server 2005 необходимо установить исправление для SQL Server 2005 с пакетом обновления 4 (SP4). По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.
SQL Server 2005 SP3
Исправление для этой проблемы впервые выпущено в накопительном обновлении 12. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2005 с пакетом обновления 3 (SP3), щелкните следующий номер статьи базы знаний Майкрософт:
2345449 Накопительный пакет обновления 12 для SQL Server 2005 с пакетом обновления 3 (SP3) Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2005 SP3. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
960598 Сборки SQL Server 2005, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2005
SQL Server 2008 с пакетом обновления 1
Исправление для этой проблемы впервые выпущено в накопительном обновлении 11 для SQL Server 2008 с пакетом обновления 1 (SP1). Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2413738 Накопительный пакет обновления 11 для SQL Server 2008 с пакетом обновления 1 (SP1)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
970365 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 1 (SP1) для SQL Server 2008Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) к установке SQL Server 2008 с пакетом обновления 1. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.
SQL Server 2008 с пакетом обновления 2
Исправление для этой проблемы впервые выпущено в накопительном обновлении 2 для SQL Server 2008 с пакетом обновления 2. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2467239 Накопительный пакет обновления 2 для SQL Server 2008 с пакетом обновления 2 (SP2)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2402659 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 2 (SP2) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Необходимо применить исправление для SQL Server 2008 с пакетом обновления 2 (SP2) к установке SQL Server 2008 с пакетом обновления 2. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.
Обходное решение
Чтобы устранить эту ошибку, перестройте индекс этой базы данных, задав параметр Online на Off в запросе.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Дополнительные сведения об операциях с индексами в сети можно найти на веб-сайте корпорации Майкрософт по следующему адресу:
Общие сведения об операциях с индексами
Дополнительные сведения об операциях с индексами в сети можно найти на веб-сайте Майкрософт по адресу: