症状
请考虑以下情况:
-
你有一个 Microsoft SQL Server 2012 或更早版本的数据库,其中包含多个文件组,辅助文件组是默认文件组。
-
备份数据库,然后在 SQL Server 2014 上还原它。
-
将主文件组设置为默认文件组,然后尝试删除辅助文件组。
在这种情况下,即使所有数据文件都被删除,也不能删除辅助文件组。 错误消息显示无法删除辅助文件组,因为它不为空。
原因
出现此问题的原因是数据库版本升级在默认文件组(而不是 SQL Server 2014 中的主文件组)上创建系统对象。 辅助文件组仍包含一些系统对象。
解决方案
此修补程序引入了跟踪标记3861以将系统表移动到主文件组中。在应用本文所述的修复程序后,当你使用跟踪标记3861作为启动参数启动 SQL Server 时,它可以将系统表移动到主文件组中。如果尚未还原数据库备份,则可以在服务器级别启用跟踪标记:
dbcc traceon(3861,-1)<Restore the database>dbcc traceoff(3861,-1)
在 SQL Server 的以下累积更新中,此问题首先已修复。
SQL Server 2014 的累积更新4 /en-us/help/2999197
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。