我知道在stackoverflow中有很多類似的問題,但他們中沒有一個完全滿足我的要求?如何使用TSQL語法將.bak恢復到新的數據庫?
1 - 我不希望附加包含2密度纖維板.ldf文件
2數據庫 - 該文件是隻有一個.bak文件
3 - 我我想知道我使用Microsoft SQL管理。
4 - 我需要它來編程方式(在我的情況的C#)
我知道在stackoverflow中有很多類似的問題,但他們中沒有一個完全滿足我的要求?如何使用TSQL語法將.bak恢復到新的數據庫?
1 - 我不希望附加包含2密度纖維板.ldf文件
2數據庫 - 該文件是隻有一個.bak文件
3 - 我我想知道我使用Microsoft SQL管理。
4 - 我需要它來編程方式(在我的情況的C#)
您可以通過發送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文件進行寫入訪問。
還原到.ldf似乎也工作 – Adrian
看看SMO在.net庫中的對象?您可以使用還原對象here來還原數據庫。 SQL Server Management Studio是使用這個SMO對象構建的,因此您可以使用C#處理SSMS的任何事情。
這不是關閉主題,可以看到 –