KB2877204 - 修复:使用 SQL Server 2008 R2 或 SQL Server 2008 中的文件的逻辑名称运行“dbcc shrinkfile”语句时出现错误 8985

应用对象
SQL Server 2008 Service Pack 3 SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Express SQL Server 2008 Standard

症状

使用 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2008 数据库中的文件的逻辑名称运行 dbcc shrinkfile 语句时,可能会收到以下错误消息:

注意

消息 8985,级别 16,状态 1,第 2 行
找不到 sys.database_files 中数据库“test”的文件“test_log_issue_log”。 该文件不存在或已删除。

        
      

解决方法

Service Pack 信息

若要解决此问题,请应用 Microsoft SQL Server 2008 SP4。 有关如何获取 SQL Server 2008 SP4 的详细信息,请单击下面的编号以查看Microsoft知识库中的文章:

2979596 SQL Server 2008 Service Pack 4 版本信息

修补程序信息

SQL Server 2008 SP3 修补程序

Microsoft 提供了一个受支持的修补程序。 但此程序只用于解决本文中提到的问题。 将此修补程序仅应用于遇到此特定问题的系统。

如果修补程序可供下载,则此知识库文章顶部有“修补程序下载可用”部分。 如果未显示此部分,请提交请求以Microsoft Customer Service 和 Support 获取修补程序。

注意 如果发生其他问题或需要进行任何故障排除,您应该另行创建服务请求。 对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。 若要获取 Microsoft 客户服务和支持部门的完整电话号码列表或另行创建服务请求,请访问以下 Microsoft 网站:

http://support.microsoft.com/contactus/?ws=support 注意“修补程序下载可用”窗体显示修补程序可用的语言。 如果您找不到需要的语言,则说明该语言版本的修补程序未提供。

累积更新信息

SQL Server 2008 R2 Service Pack 2 的累积更新 8

此问题的修补程序首次在累积更新 8 中发布。 有关如何为 SQL Server 2008 R2 Service Pack 2 获取此累积更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:

2871401 2008 R2 Service Pack 2008 SQL Server累积更新包 8 注意 由于内部版本是累积的,因此每个新修补程序版本都包含所有修补程序和以前的SQL Server 2008 R2 Service Pack 2 修补程序版本中包含的所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2730301 SQL Server 2008 R2 Service Pack 2 发布后发布的 SQL Server 2008 R2 版本

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

若要解决此问题,请在 dbcc shrinkfile 语句中使用 file_id。 若要获取文件 ID,请使用 FILE_IDEX 系统函数或查询当前数据库中sys.database_files目录视图。

详细信息

有关如何使用 dbcc shrinkfile 语句的详细信息,请转到以下 TechNet 网站:

如何使用“dbcc shrinkfile”语句 有关如何使用 FILE_IDEX 系统函数的详细信息,请转到以下 TechNet 网站:

如何使用 FILE_IDEX 系统函数