如何在其他位置添加另一个.mdf文件并向其中写入数据 - SQL Server



我有一个巨大的SQL Server档案数据库(MISArchival(:250GB,它位于仅剩30GB空间的E:驱动器上。

我必须从生产 MIS 数据库清除/移出更多数据到此存档数据库 (MISArchival (。

现在我有另一个驱动器,它是I:驱动器,大约有200GB的空间。

我的问题是:如何在驱动器上制作/添加另一个.mdf文件I:并确保下次将数据插入此存档数据库时,它开始写入在I:驱动器上创建的这个新.mdf文件,而不是E:驱动器?

当前设置:

E:DatabaseDataBSP_MIS_Archived.mdf
E:DatabaseLogBSP_MIS_Archived.ldf

由于空间问题,我需要在不同位置的另一个.mdf文件:

I:DatabaseDataBSP_MIS_Archived_2.mdf

谢谢

抱歉,您无法通过某些语句在文件之间移动对象。您将需要自行移动数据。

首先创建一个filegroup并在新驱动器上向其添加新文件。

使用与原始表相同的脚本创建新表,但使用新文件组使用insert/select comando 或 BCP/Bulk 移动数据,并将表重命名sp_rename

最后,您需要在原始文件上进行收缩。

如果您还有其他疑问,请添加评论。

可以从 SSMS 中的数据库属性或代码添加数据文件:

use master;
go
ALTER DATABASE MISArchival
ADD FILE 
(
    NAME = MISArchival2,
    FILENAME = 'I:DatabaseDataBSP_MIS_Archived_2.ndf'
);
go

需要注意的一些事项:

  • 通常,辅助数据文件具有 NDF 扩展名,但这不是必需的
  • 如果不创建单独的文件组,则额外的数据文件将放入 PRIMARY 中
  • 您需要考虑数据库的适当初始大小、最大大小和增长要求

参考: MSSQL 文档

相关内容

  • 没有找到相关文章

最新更新