是否可以将ndf文件和mdf文件合并为一个单独的mdf文件?

时间:2016-12-16 14:25:40

标签: sql-server sql-server-2012 mdf

我有一个.mdf文件和两个相同mdf文件的.ndf文件。是否可以将这些文件合并为一个.mdf文件而不丢失任何数据?

2 个答案:

答案 0 :(得分:2)

是的,您可以使用Empty选项使用 DBCC SHRINKFILE

From MSDN

  

EMPTYFILE :(强调我的重点)

     

将指定文件中的所有数据迁移到相同文件组中的其他文件。换句话说,EmptyFile会将数据从指定文件迁移到同一文件组中的其他文件。 Emptyfile确保您不会将新数据添加到文件中。

     

可以使用ALTER DATABASE语句删除该文件。

示例:

DBCC SHRINKFILE (nameofdatafile, EMPTYFILE);  
GO  

-- Remove the data file from the database.  
ALTER DATABASE AdventureWorks2012  
REMOVE FILE Test1data;  
GO  

答案 1 :(得分:0)

感谢@TheGameiswar的回答。

如果你有例如file1.mdf,file2.ndf和file3.ndf

将它们合并到一个文件中的方法:

DBCC SHRINKFILE(file2, EMPTYFILE);
GO

DBCC SHRINKFILE(file3, EMPTYFILE);
GO

然后你可以安全地删除它们:

ALTER DATABASE MyDB
REMOVE FILE file2;  
GO  

ALTER DATABASE MyDB
REMOVE FILE file3;  
GO  

file1将包含之后的整个数据。