症状
使用 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 SQL Server 2008 R2 Service Pack 2 的累积更新包 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 网站: