CORRECÇÃO: As colunas do tipo de dados XML são replicadas como cadeias vazias numa replicação de intercalação que utiliza um filtro de impressão em série do tipo de relação lógica, registos no SQL Server 2005

Traduções de Artigos Traduções de Artigos
Artigo: 948628 - Ver produtos para os quais este artigo se aplica.
Erro: # 50002221 (correcção SQL)
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 versão contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 anterior corrigir lançamento.
Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário no Microsoft SQL Server 2005:
  • Configurou uma replicação de intercalação para uma tabela que contém uma ou mais colunas do tipo de dados XML.
  • Criar um filtro impressão em série para a tabela. O filtro de impressão em série é um tipo de relação lógica, registar. @ filter_type parâmetro do procedimento sp_addmergefilter armazenado é 2 ou 3.
  • Executar uma instrução batch contra esta tabela o fabricante ou um subscritor.
  • A instrução batch é constituída por uma instrução DELETE seguida por uma instrução INSERT.
  • Em seguida, sincronizar a replicação.
Neste cenário, quando examinar os dados inseridos na outra réplica, as colunas de tipo de dados XML poderão ser cadeias vazias. Esta questão resulta na não convergência de dados.

Causa

No Microsoft SQL Server 2005, se efectuar uma operação de inserção ou uma operação de actualização numa tabela que contém colunas XML, a replicação de intercalação efectua a operação em dois passos. O primeiro passo insere ou actualiza todas as colunas que não são o tipo de dados XML. O segundo passo efectua uma operação de actualização para cada coluna do tipo de dados XML. Estes passos ocorrem porque as colunas XML podem ser vinculadas apenas como transmissão em sequência. No entanto, o fornecedor de OLE DB não permite mais do que uma sequência para uma linha de ligação.

Uma vez que uma secção tem apenas um tipo de comando, o tipo de comandos da secção é DELETE se uma instrução DELETE estiver presente num batch pela primeira vez. No cenário descrito em "Sintomas" secção, se existir uma secção que contém uma instrução DELETE seguida por uma instrução INSERT, a alteração é ignorada na instrução INSERT de colunas XML.

Resolução

A correcção para este problema foi primeiro disponibilizada na actualização cumulativa 6. Para obter mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2005 Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
946608Pacote de actualização cumulativa 6 para o SQL Server 2005 Service Pack 2
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 incluídas com o SQL Server 2005 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a versão de correcção mais recente que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
937137Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 2
As correcções Microsoft SQL Server 2005 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2005 Service Pack 2 para uma instalação do SQL Server 2005 Service Pack 2. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.

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

Pode utilizar a seguinte consulta para saber se um filtro de impressão em série do tipo de relação registo lógica é criado para uma tabela.
Select f.artid, a.name, f.filter_type 
from sysmergesubsetfilters f join sysmergearticles a
on f.artid=a.artid where a.name='<TableName>'
DELETE A instrução não requer este processo composto por dois passos. A decisão se pretende efectuar o segundo passo é efectuada ao nível da secção observando o tipo de comando do primeiro comando no lote. Pressupõe-se que todos os comandos na secção de são do mesmo tipo. Por conseguinte, é suficiente para examinar apenas o primeiro comando no lote. Se existirem registos lógicos numa secção, a secção pode ser constituída por tipos de comandos diferentes. Por conseguinte, é insuficiente para examinar apenas o primeiro comando. A decisão se pretende efectuar o segundo passo deverá ser feita ao nível do comando e não ao nível do processo. Esta correcção corrige este problema. Depois de aplica a correcção, todos os comandos são examinados e, em seguida, os passos são determinados em do tipo de comando.

Para obter mais informações sobre os ficheiros que são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de actualização cumulativa que contém a correcção que é descrita neste artigo da base de dados de conhecimento da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
946608Pacote de actualização cumulativa 6 para o SQL Server 2005 Service Pack 2

Referências

Para obter mais informações sobre a lista de compilações disponíveis depois de SQL Server Service Pack 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
937137Cria o SQL Server 2005 que foram disponibilizadas após o lançamento do SQL Server 2005 Service Pack 2
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 Microsoft Knowledge Base:
935897Um modelo de assistência incremental está disponível a 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 2, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
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 2, visite o seguinte Web site da Microsoft:
http://go.microsoft.com/fwlink/?LinkId=71711
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 Microsoft Knowledge Base:
822499Novo esquema de atribuição de nomes de ficheiros para pacotes de actualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 948628 - Última revisão: 26 de fevereiro de 2008 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • 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 kbsql2005repl kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB948628 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: 948628

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