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