我有一个庞大的SQL Server档案数据库(MISArchival
):250GB,它位于E:\
驱动器上,只剩下30GB的空间。
我必须从生产MIS数据库中清除/移出更多数据到此存档数据库(MISArchival
)。
现在我有另一个驱动器I:\
驱动器,并且有大约200GB的空间。
我的问题是:如何在.mdf
驱动器上创建/添加另一个I:\
文件,并确保下次将数据插入此存档数据库时,它会开始写入此新{{1}在.mdf
驱动器上创建的文件,而不是I:\
驱动器上创建的文件?
当前设置:
E:\
由于空间问题,我在另一个位置需要另一个E:\Database\Data\BSP_MIS_Archived.mdf
E:\Database\Log\BSP_MIS_Archived.ldf
文件:
.mdf
谢谢
答案 0 :(得分:0)
抱歉,您无法通过某些声明在文件之间移动objets。您需要自己移动数据。
所有这些都创建了一个filegroup
并在新驱动器上添加了一个新文件。
使用与原始脚本相同的脚本创建新表,但使用新文件组使用insert/select
comando或BCP/Bulk
移动数据并重命名表sp_rename
最后,您需要在原始文件中进行缩小。
如果您有更多疑问,请添加评论。
答案 1 :(得分:0)
您可以从SSMS中的数据库属性或代码中添加数据文件:
use master;
go
ALTER DATABASE MISArchival
ADD FILE
(
NAME = MISArchival2,
FILENAME = 'I:\Database\Data\BSP_MIS_Archived_2.ndf'
);
go
有些注意事项: