2016-12-16 350 views
0

我有一個.mdf文件和兩個相同的mdf文件的.ndf文件。是否有可能將這些文件合併爲一個.mdf文件而不丟失任何數據?是否可以將ndf文件和mdf文件合併成一個單一的mdf文件?

+0

在發佈這個問題之前,你研究並發現哪些工作不工作? – dfundako

+0

我做了一些搜索,但我沒有找到我的答案,除了我有一個2TB的數據庫,所以我不能做一些風險。 –

+2

你最好先計劃在測試環境中這樣做。製作並不是試圖找到你在網上找到的東西的地方。 –

回答

2

是的,你可以..use DBCC SHRINKFILEEmpty選項

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 
+0

謝謝@TheGameiswar,如果我有例如file1.mdf,file2.ndf和file3.ndf,你可以提供給我一個快速查詢嗎?我只是害怕丟失我的數據 –

+0

示例涵蓋了,您不會丟失任何數據,用查詢中的文件名替換每個文件 – TheGameiswar

+0

好吧我會在示例數據庫上嘗試它,給我一秒鐘 –

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將包含之後的整個數據。