Sintomas
Assuma que tem uma base de dados ativada por FILESTREAM num caso do Microsoft SQL Server. Quando iniciar uma transação e utilizar a API SqlFileStream .NET para abrir um ficheiro Filestream, a tarefa pode falhar e lançar uma exceção devido a fatores externos.
Se voltar a abrir o ficheiro utilizando o SqlFileStream na mesma transação e cometer, poderá receber mensagens de erro internas que se assemelham ao seguinte:
data, espiões, Desconhecido, Erro: 5571<c/> Severidade: 23<c/> Estado: 3.hora da data,espiões,erro de FILESTREAM interno desconhecido: não conseguiu aceder à tabela de recolha de lixo.
Se executar a mesa de verificação dBCC ('sys.filestream_tombstone_2073058421'), poderá receber a seguinte mensagem de erro:
Msg 8951, Nível 16, Estado 1, LineNumber
Erro de tabela: mesa dbcc ('sys.filestream_tombstone_2073058421') (ID IDNumber). A linha de dados não tem uma linha de índice correspondenteno índice 'FSTSNCIdx' (IDNumber). IDNumber Possíveis chaves em falta ou inválidas para a linha de índice correspondente:
Resolução
A correção para este problema está incluída nas seguintes atualizações para o 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 construções do SQL Server
Cada nova construção para SQL Server contém todos os hotfixes e correções de segurança que estavam na construção anterior. Recomendamos que instale a mais recente construção para a sua versão do SQL Server:
Solução
Para contornar este problema, reconstroem o índice de base de dados utilizando o comando DBCC CHECKTABLE.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Saiba mais sobre a terminologia padrão que a Microsoft utiliza para descrever atualizações de software.