CORRECÇÃO: Uma operação de inserção para uma tabela temporária que tenha uma restrição de chave externa falha quando o plano de execução para a instrução INSERT contém uma operação de associação de intercalação em SQL Server 2005

Traduções de Artigos Traduções de Artigos
Artigo: 977100 - Ver produtos para os quais este artigo se aplica.
A Microsoft distribui correcções Microsoft SQL Server 2005 como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova edição contém todas as correcções e todas as correcções de segurança que foram incluídas com o SQL Server 2005 anterior corrigir lançamento.
Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário:
  • No SQL Server 2005, ter uma tabela que tenha uma restrição de chave externa.
  • Executa uma instrução INSERT para inserir várias linhas nesta tabela.
  • O plano de execução para a instrução INSERT contém uma operação de associação de impressão em série.
Neste cenário, a operação Inserir poderá falhar. Além disso, recebe a seguinte mensagem de erro:
Erro: 547, gravidade: 16, estado: 0
A instrução INSERT entrou em conflito com a restrição FOREIGN KEY "< chave externa >".
O conflito ocorreu na base de dados "< nome da base de dados >", "< nome da tabela >" tabela, a coluna '< nome de coluna >'

Causa

A operação de adesão a intercalação espera receber as linhas que são ordenadas de acordo com as colunas de associação. No entanto, na situação que é mencionada na secção "Sintomas", a operação de adesão a impressão em série não recebe as linhas inseridas na ordem correcta. Este problema ocorre porque o plano de execução lê novas linhas de um índice cujas chaves correspondem para as colunas de associação. No entanto, o SQL Server lê o índice na ordem de atribuição em vez de na ordem de chave.

Resolução

A correcção para este problema foi primeiro disponibilizada em actualização cumulativa 7 para o SQL Server 2005 Service Pack 3. Para obter mais informações sobre este pacote de actualização cumulativa, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
976951Pacote de actualização cumulativa 7 para SQL Server 2005 Service Pack 3
Nota Uma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança que foram incluídas com o SQL Server 2005 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a mais recente versão de correcção que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
960598Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005 são criadas correcções para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2005 Service Pack 3 para uma instalação do SQL Server 2005 Service Pack 3. Por predefinição, qualquer correcção fornecida num service pack SQL Server está incluída no próximo service pack do SQL Server.

Como contornar

Para contornar este problema, utilize um dos seguintes métodos.

Método 1

Aplica uma sugestão de consulta de LOOP JOIN para desactivar a operação de adesão a impressão em série.

Método 2

Adicione uma cláusula explícita ORDER BY para ordenar linhas nas colunas de chaves do índice que está a digitalizar.

Ponto Da Situação

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

Mais Informação

Depois de aplicar a correcção, será possível ler o índice de chave ordem.

Referências

Para obter mais informações sobre o modelo de assistência incremental para o SQL Server, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
935897Um modelo de assistência incremental está disponível a partir da equipa do SQL Server para proporcionar correcções para problemas comunicados
Para obter mais informações sobre como obter o SQL Server 2005 Service Pack 3, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
913089Como obter o service pack mais recente para o SQL Server 2005
Para mais informações sobre as novas funcionalidades e melhorias no SQL Server 2005 Service Pack 3, visite o seguinte Web site da Microsoft:
http://go.microsoft.com/fwlink/?LinkId=131442
Para obter mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
822499Novo esquema de atribuição de nomes para pacotes de actualização de software Microsoft SQL Server
Para obter mais informações sobre a terminologia de actualizações de software, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 977100 - Última revisão: 24 de dezembro de 2009 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Palavras-chave: 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB977100 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 977100

Submeter comentários

 

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