Sign in with Microsoft
Sign in or create an account.

Sintomas

Assuma que tem uma tabela que tem um índice de loja de colunas agrupado no Microsoft SQL Server 2014. Você faz uma consulta DDL contra a tabela para alterar o tipo de dados de uma coluna existente. Por exemplo, atualiza o tipo de dados para Column_1 de Table_1 de VARCHAR (499) a NVARCHAR (500) executando o seguinte comando:

ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL

Nesta situação, ocorrem múltiplas falhas de afirmação e recebe a seguinte mensagem de erro:

Localização: <Caminho do Arquivo>\xmcolenc.inl:413Expressão: PF_CURRENT_STATUS == PFS_OK(em XMColumnEncoder<char não assinado *>:::EncodeValueForSecondary)SPID: <SPID>Process ID: <ID processo >Descrição: hr: 0x0Localização: <Caminho do Arquivo>\xmerror.cpp:43Expressão: 0(em PFSetLastError)SPID: <SPID>Processo ID: <Processo ID>Descrição: hr: 0x0

Adicionalmente, vários ficheiros de despejo de memória são gerados na pasta sql Server Error Log e várias mensagens de erro que se assemelham ao seguinte são registadas no registo de erro do servidor SQL:

<Data > espiado<ID> ***Stack Dump sendo enviado para <Nome do Disco>:\Ficheiros de programa\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<Date Time> spid<ID> * *******************************************************************************<Date Time> spid<ID>*<Date Time> spid<ID>* BEGIN STACK DUMP:<Date Time> spid<ID>* <Date Time> spid<ID><Date Time> spid<ID>* Private server build.<Date Time> spid<ID>*<Date Time> spid<ID>* Location: <File Path>\xmcolenc.inl:413<Date Time> spid<ID>* Expression: PF_CURRENT_STATUS == PFS_OK<Date Time> spid<ID>* (in XMColumnEncoder<unsigned char *>::EncodeValueForSecondary)<Date Time> spid<ID>* SPID: 60<Date Time> spid<ID>* Process ID : 3680<hora da data> espiado<ID>* Descrição: hr: 0x0<Data> espiado<>*horada data <>>>*<de entrada espiado<* Tampão de entrada 136 bytes -<Data> espiado<>* ALTER TABLE Table_1 ALTER COLUMN COL1 NVARCHAR(500) NOT NULL; ID

Resolução

Depois de aplicar este hotfix, poderá receber a seguinte nova mensagem de erro quando a consulta DDL falhar:

A declaração DO ALTER TABLE falhou porque um dicionário secundário atingiu o limite máximo de tamanho. Considere baixar o índice de loja de colunas, alterar a coluna e, em seguida, criar um novo índice de loja de colunas

Esta correção também impede que os ficheiros de despejo de memória sejam gerados no SqL Server Error Log.O problema foi corrigido pela primeira vez nas seguintes atualizações cumulativas do SQL Server:

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Recomendamos que descarregue e instale as últimas atualizações cumulativas para o SQL Server:

Estado

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

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?

Obrigado pelo seu feedback!

×