症状
假设您在 Microsoft SQL Server 实例中有一个启用了 FILESTREAM 的数据库。 启动事务并使用 SqlFileStream .NET API 打开 Filestream 文件时,该任务可能失败并由于外部因素而引发异常。
如果在同一事务中使用 SqlFileStream 再次打开文件并提交,则可能会收到类似于以下内容的内部错误消息:
日期时间、 spid、未知、错误: 5571<c/> 严重性: 23<c/> 状态:3。日期时间、 spid、未知、内部 FILESTREAM 错误:无法访问垃圾回收表。
如果你运行 dbcc checktable ("sys.filestream_tombstone_2073058421"),可能会收到以下错误消息:
消息8951、级别16、状态1、行 LineNumber
表错误:表 dbcc checktable (' sys.filestream_tombstone_2073058421 ') (ID IDNumber)。 在索引 "FSTSNCIdx" (IDIDNumber)中,数据行没有匹配的索引行。 索引行匹配的键可能丢失或无效:
解决方案
适用于此问题的修复程序包含在 SQL Server 的以下更新中:
关于 SQL Server 内部版本
SQL Server 的每个新版本都包含上一版本中的所有修补程序和安全修补程序。 我们建议你为你的 SQL Server 版本安装最新版本:
解决方法
要解决此问题,请使用 DBCC CHECKTABLE 命令重新生成数据库索引。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的标准 术语 。