Sintomas
Suponha que você tenha um banco de dados habilitado para FILESTREAM em uma instância do Microsoft SQL Server. Quando você inicia uma transação e usa a API do SqlFileStream .NET para abrir um arquivo FILESTREAM, a tarefa pode falhar e gerar uma exceção devido a fatores externos.
Se você abrir o arquivo novamente usando SqlFileStream na mesma transação e confirmar, poderá receber mensagens de erro internas semelhantes às seguintes:
data/hora, SPIDs, desconhecido, erro: 5571<a severidade c/>:23<estado c/>:3.data e hora, SPIDs, desconhecido, erro interno de FILESTREAM: falha ao acessar a tabela de coleta de lixo.
Se você executar DBCC CHECKTABLE (' sys.filestream_tombstone_2073058421 '), você pode receber a seguinte mensagem de erro:
MSG 8951, nível 16, estado 1, line LineNumber
Erro de tabela: tabela DBCC CHECKTABLE (' sys.filestream_tombstone_2073058421 ') (ID IDNumber). A linha de dados não tem uma linha de índice correspondente no índice ' FSTSNCIdx ' (ID IDNumber). Possíveis chaves ausentes ou inválidas para a correspondência de linhas de índice:
Resolução
A correção para esse problema está incluída nas seguintes atualizações do SQL Server:
Atualização cumulativa 13 para SQL Server 2017
Atualização cumulativa 1 para SQL Server 2014 Service Pack 3
Atualização cumulativa 15 para SQL Server 2014 Service Pack 2
Sobre as compilações do SQL Server
Cada novo Build do SQL Server contém todos os hotfixes e correções de segurança que estavam na compilação anterior. Recomendamos instalar o Build mais recente para a sua versão do SQL Server:
Solução alternativa
Para contornar esse problema, reconstrua o índice do banco de dados usando o comando DBCC CHECKTABLE .
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia padrão que a Microsoft usa para descrever atualizações de software.