Aplica-se a
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomas

Um erro de asserção pode ocorrer quando o Microsoft SQL Server executa repetidamente um procedimento armazenado que executa o seguinte:

  • Usa um objeto grande, como varchar (max) ou varbinary (max), como um argumento e

  • Cria uma tabela temporária que tem o escopo para a execução do procedimento e

  • Usa o argumento objeto grande na tabela temporária.

Você pode encontrar o erro de asserção semelhante ao seguinte no log de erros do SQL Server:

ErroSPID de data/hora: 17065, severidade: 16, estado: 1. 

Data/hora Declaração SPID do SQL Server: arquivo: FilePath \filename, line = LineNumber falhou Assertion = ' fFalse ' tentativa de acessar o identificador de blob expirado (1). Este erro pode estar relacionado ao tempo. Se o erro persistir após a reexecução da instrução, use DBCC CHECKDB para verificar a integridade estrutural do banco de dados ou reinicie o servidor para garantir que as estruturas de dados na memória não sejam corrompidas.

Erro SPID de data/hora : 3624, severidade: 20, estado: 1.

Data/hora doSPID uma verificação de asserção do sistema falhou. Verifique o log de erros do SQL Server para obter detalhes. Geralmente, uma falha de asserção é causada por um bug de software ou corrupção de dados. Para verificar se há corrupção do banco de dados, considere executar DBCC CHECKDB. Se você concordou em enviar despejos para a Microsoft durante a instalação, um mini despejo será enviado à Microsoft. Uma atualização pode estar disponível na Microsoft no Service Pack mais recente ou em um hotfix do suporte técnico.

Causa

O SQL Server tem lógica interna para desabilitar o cache de consultas que fazem referência a objetos grandes para que as execuções subsequentes não façam referência a esses LOBs (que foram criados durante execuções anteriores e, portanto, são inválidos para execuções subsequentes). Essa lógica não manipulava o caso da resolução de nomes adiada (DNR) em tabelas temporárias que fizeram com que esses planos sejam armazenados em cache. Tabelas temporárias com escopo são caras de criar, e o SQL Server os armazena em cache para reutilização em execuções subsequentes. Isso impede a recompilação de tais consultas devido às alterações de esquema.

Saiba mais sobre a resolução de nomes adiada.

Resolução

Esse problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:

       Atualização cumulativa 8 para SQL Server 2016 SP1  

       Atualização cumulativa 4 para SQL Server 2017

       Atualização cumulativa 10 para SQL Server 2014 Service Pack 2

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e correções de segurança que estavam na compilação anterior. Confira a atualização cumulativa mais recente do SQL Server:

Atualização cumulativa mais recente do SQL Server 2016

Atualização cumulativa mais recente do SQL Server 2017

atualizações cumulativas mais recentes do SQL Server 2014

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Referências

Saiba mais sobre a terminologia usada pela Microsoft para descrever atualizações de software.

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.