Applies ToSQL Server 2008 Service Pack 3 SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

症状

当您在 Microsoft SQL Server 2008、SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014 中查询二进制大型对象(BLOB)列数据时,可能会收到以下错误:

错误:5180无法在数据库 "tempdb" 中打开无效文件 ID 0 的文件控制银行(FCB)。 验证文件位置。 执行 DBCC CHECKDB。

原因

出现此问题的原因是,当 SQL Server 读取 BLOB 数据时,它不会相应地处理(取消)消息。 仅当内部内存中的 BLOB 缓存已禁用时,才会出现此问题。 当缓存被禁用时,缓存数据将切换到数据库 tempdb。 此后,SQL Server 从数据库 tempdb (而不是内存缓存)读取 BLOB 数据。 取决于 BLOB 数据大小或服务器内存条件,禁用内部内存中的 BLOB 缓存。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。