2013-09-28 26 views
3

我知道在stackoverflow中有很多類似的問題,但他們中沒有一個完全滿足我的要求?如何使用TSQL語法將.bak恢復到新的數據庫?

1 - 我不希望附加包含2密度纖維板.ldf文件
2數據庫 - 該文件是隻有一個.bak文件
3 - 我我想知道我使用Microsoft SQL管理。
4 - 我需要它來編程方式(在我的情況的C#)

+2

這不是關閉主題,可以看到 –

回答

17

您可以通過發送T-SQL命令(發送select查詢)來恢復數據庫。例如:

restore database NameOfYourDb 
from disk = 'c:\backups\NameOfYourDb.bak' 
with recovery, 
     move 'NameOfYourDb_Data' to 'c:\data\NameOfYourDb.mdf', 
     move 'NameOfYourDb_Log' to 'c:\data\NameOfYourDb.log' 

二是可存儲在.bak文件中的最小文件數。每個數據庫至少有一個數據和一個日誌文件(擴展名分別爲.mdf和.log)

請注意,還原是由SQL Server服務完成的。您必須從該服務的角度提供路徑。 SQL Server正在運行的帳戶需要對.bak文件的讀取訪問權限,並可以對.mdf和.log文件進行寫入訪問。

+0

還原到.ldf似乎也工作 – Adrian

1

看看SMO在.net庫中的對象?您可以使用還原對象here來還原數據庫。 SQL Server Management Studio是使用這個SMO對象構建的,因此您可以使用C#處理SSMS的任何事情。

相關問題