CORRECÇÃO: Danos nos dados ocorrem quando dados LOB são carregados para a uma variável de Transact-SQL no SQL Server 2008 R2, 2012 do SQL Server ou SQL Server 2008

Traduções de Artigos Traduções de Artigos
Artigo: 2803994 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando executa uma consulta que contenha dados de objectos grandes (LOB) para carregar uma variável de Transact-SQL no Microsoft SQL Server 2008, 2012 do Microsoft SQL Server ou Microsoft SQL Server 2008 R2, ocorre uma corrupção de dados. Por exemplo, executar a consulta seguinte para copiar dados XML de uma coluna de base de dados para uma variável de XML:
Declare @OUTXML as XML
SELECT @OUTXML = DataXml FROM Table_1 WHERE id=1 

Nesta situação, a instrução SELECT , é executada quando outros threads tentar actualizar a mesma coluna XML. Este comportamento pode causar danos nos dados. Além disso, recebe uma das seguintes mensagens de erro quando executar qualquer leitura e escrita de operação na coluna XML danificada:
  • O tipo de dados XML está danificado.
  • Ocorreu o fim inesperado de ficheiro.
Notas
  • O problema ocorre normalmente durante as operações simultâneas de carga elevada.
  • Quando utiliza um agente de leitura do registo para ler os dados XML danificados de uma tabela que faz parte de uma lista de artigos de publicação para a replicação transaccional, recebe a seguinte mensagem de erro:

    O tipo de dados XML está danificado. (Origem: MSSQLServer, número de erro: 6611)

Causa

Este problema ocorre porque um bloqueio na coluna de dados LOB é disponibilizado antes dos dados do LOB são copiados da coluna da base de dados para a variável de tipo de dados do LOB. Qualquer consulta em simultâneo pode actualizar os mesmos dados do LOB antes do processo de cópia estiver concluído, durante o processo de cópia. Por conseguinte, a Corrupção de dados ocorre.

Resolução

Informações de actualização cumulativa

Actualização cumulativa 7 para o SQL Server 2012

A correcção deste problema publicada pela primeira vez na actualização cumulativa 7. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2012, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2823247 Pacote de actualização cumulativa 7 para SQL Server 2012
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o anterior servidor de SQL: 2012. Recomendamos que pense em aplicar a edição mais recente da correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2692828 O servidor de SQL 2012 cria disponibilizadas após o lançamento do SQL Server 2012

Actualização cumulativa 12 para SQL Server 2008 R2 Service Pack 1

A correcção para este problema foi primeiro disponibilizada em 12 de actualização cumulativa. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2 Service Pack 1, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2828727 Pacote de actualização cumulativa 12 para SQL Server 2008 R2 Service Pack 1
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o anterior SQL Server 2008 R2 Service Pack 1. Recomendamos que pense em aplicar a edição mais recente da correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2567616 O SQL Server 2008 R2 cria disponibilizadas após o lançamento do SQL Server 2008 R2 Service Pack 1

Actualização cumulativa 10 para SQL Server 2008 Service Pack 3

A correcção para este problema foi primeiro disponibilizada em 10 de actualização cumulativa. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 Service Pack 3, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2814783 Pacote de actualização cumulativa 10 para SQL Server 2008 Service Pack 3
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior SQL Server 2008 Service Pack 3. Recomendamos que pense em aplicar a edição mais recente da correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2629969 O SQL Server 2008 cria disponibilizadas após o lançamento do SQL Server 2008 Service Pack 3

Actualização cumulativa 5 para SQL Server 2008 R2 Service Pack 2 (SP2)

A correcção para este problema foi primeiro disponibilizada em 5 de actualização cumulativa. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2 S2008 R2 SP2, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2797460 Pacote de actualização cumulativa 5 para o SQL Server 2008 R2 S2008 R2 SP2
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas com o anterior SQL Server 2008 R2 S2008 R2 SP2. Recomendamos que pense em aplicar a edição mais recente da correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2730301 O SQL Server 2008 R2 cria disponibilizadas após o lançamento do SQL Server 2008 R2 Service Pack 2

Ponto Da Situação

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


Propriedades

Artigo: 2803994 - Última revisão: 15 de abril de 2013 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 R2 Service Pack 2
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • SQL Server 2012 Enterprise Core
Palavras-chave: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2803994 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: 2803994

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