SQL Server 通过数据迁移到同一文件组中的其他文件来清空文件 清除后不能删除文件的问题 DBCC SHRINKFILE(file_name,EMPTYFILE)
问题:
由于在一个数据库中有 FileA文件(属于文件组GroupA)的可用空间很大,示例情况 100MB/10G(已用/分配空间)。
如果直接对该文件进行收缩,会存在收缩时间的不可把控,所以想到通过数据迁移到同一文件组中的其他文件来清空该文件(因为已用空间很小只有100MB移动起来不会花太长时间),再进行对该文件的删除,最终实现释放空间。
1.对数据库创建一个新的文件FileB,文件组为GroupA
2.使用数据库/任务/收缩/文件,选中FileA ,勾选择:通过数据迁移到同一文件组中的其他文件来清空文件
3.等待……
4.收缩完成,执行ALTER DATABASE [数据库名称] REMOVE FILE [FileA]
问题在这一步出来,报错消息:无法对具有数据库快照或活动 DBCC 副本的数据库执行此操作。
解决办法:把该数据库的快照删除掉,再执行第4步,成功的把FileA文件删除掉。

浙公网安备 33010602011771号