KB2490920 - CORRECÇÃO: Erro "Msg 2601, Nível 14, Estado 1, Linha 1 não é possível inserir linha de chave duplicada" quando executa a instrução ALTER PARTITION FUNCTION para dividir ou intercalar um intervalo de partições no SQL Server 2005 ou no SQL Server 2008

Aplica-se A
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

A Microsoft distribui as correções do Microsoft SQL Server 2005 ou Microsoft SQL Server 2008 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior Microsoft SQL Server 2005 ou Microsoft SQL Server 2008 corrigir lançamento

Sintomas

Tenha em conta o seguinte cenário:

  • Instalar uma instância do Microsoft SQL Server 2005 ou SQL 2008 em um computador.
  • Você cria uma tabela particionada que contém um índice não clusterizado que não está alinhado.
  • Execute a instrução ALTER PARTITION FUNCTION para dividir ou mesclar um intervalo de partições para a tabela particionada.

Nesse cenário, você recebe a seguinte mensagem de erro periodicamente:

Nota

Msg 2601, Nível 14, Estado 1, Linha 1
Não é possível inserir linha de chave duplicada em objectname<> com índice <exclusivo, uniqueindexname>.

Causa

Este problema ocorre porque é disparado um erro no otimizador de consultas quando um intervalo de partições é dividido.

Quando o plano de tempo de execução exclui e insere algumas linhas do intervalo de partição afetado em um novo intervalo de partição, ocorre uma violação de chave exclusiva.

Resolução

Informações de atualização cumulativa

SQL Server 2005 Service Pack 3

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 15 para SQL Server 2005 Service Pack 3. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

2507766 Pacote de atualizações cumulativas 15 para SQL Server 2005 Service Pack 3Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2005 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

960598 As compilações do SQL Server 2005 lançadas após o lançamento do SQL Server 2005 Service Pack 3, os hotfixes do Microsoft SQL Server 2005 são criados para service packs SQL Server específicos. Tem de aplicar uma correcção SQL Server 2005 Service Pack 3 a uma instalação do SQL Server 2005 Service Pack 3. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.

SQL Server 2005 Service Pack 4

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 2 para SQL Server 2005 Service Pack 4. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

2489409 Pacote de atualizações cumulativas 2 para SQL Server 2005 Service Pack 4Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2005 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2485757 As compilações SQL Server 2005 lançadas após o lançamento do SQL Server 2005 Service Pack 4 Os hotfixes do Microsoft SQL Server 2005 são criados para service packs SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2005 Service Pack 4 a uma instalação do SQL Server 2005 Service Pack 4. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.

SQL Server 2008 Service Pack 1

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 13 para SQL Server 2008 Service Pack 1. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

2497673 Pacote de atualizações cumulativas 13 para SQL Server 2008 Service Pack 1Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server anterior 2008 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

970365 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 1 Os hotfixes do Microsoft SQL Server 2008 são criados para service packs SQL Server específicos. Tem de aplicar uma correção do SQL Server 2008 Service Pack 1 a uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.

SQL Server 2008 Service Pack 2

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 3 para o SQL Server 2008 Service Pack 2. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

2498535 Pacote de atualizações cumulativas 3 para SQL Server 2008 Service Pack 2Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2402659 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 2 Os hotfixes do Microsoft SQL Server 2008 são criados para service packs SQL Server específicos. Tem de aplicar uma correção do SQL Server 2008 Service Pack 2 a uma instalação do SQL Server 2008 Service Pack 2. Por padrão, qualquer hotfix fornecido em um SQL Server service pack é incluído no próximo SQL Server service pack.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Referências

Para obter mais informações sobre a instrução Transact-SQL ALTER PARTITION FUNCTION , visite o seguinte site da MSDN:

Informações gerais sobre a instrução Transact-SQL ALTER PARTITION FUNCTION Para obter mais informações sobre as diretrizes especiais para índices particionados, visite o seguinte site da MSDN:

Diretrizes especiais para índices particionados Para obter mais informações sobre o modelo de manutenção incremental para SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

935897 Um modelo de manutenção incremental está disponível na equipe de SQL Server para fornecer hotfixes para problemas relatados

Para obter mais informações sobre o esquema de nomenclatura para atualizações SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

822499 Novo esquema de nomenclatura para pacotes de atualização de software do Microsoft SQL Server Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:

824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft