2011-11-18 63 views
0

我正在將名爲databasebkup.bak(保存在C:\\databasebkup.bak中)的文件中的數據庫恢復到名爲MyDatabase的Sql Server 2005數據庫。恢復sql備份時出錯

我已經在我的代碼,它看起來像這樣引用Microsoft.SqlServer.Management.Common;Microsoft.SqlServer.Management.Sdk.Sfc;Microsoft.SqlServer.Management.Smo

Microsoft.SqlServer.Management.Smo.Server smoServer = new Server(
                 new ServerConnection(".")); 
Database db = smoServer.Databases["MyDatabase"]; 
string dbPath = Path.Combine(db.PrimaryFilePath, "MyDatabase.mdf"); 
string logPath = Path.Combine(db.PrimaryFilePath, "MyDatabase_Log.ldf"); 

Restore restore = new Restore(); 
var deviceItem = new BackupDeviceItem("C:\\databasebkup.bak", DeviceType.File); 

restore.Devices.Add(deviceItem); 
restore.Database = "C:\\databasebkup.bak"; 

//restore.FileNumber = restoreFileNumber; 
restore.Action = RestoreActionType.Database; 
restore.ReplaceDatabase = true; 
restore.SqlRestore(smoServer); 

db.SetOnline(); 
smoServer.Refresh(); 
db.Refresh(); 

但同時恢復,它返回此錯誤:

Restore failed for Server servername'

誰能告訴我在哪兒會出錯嗎?

回答

1

嘗試改變:

restore.Database = "C:\\databasebkup.bak"; 

到:

restore.Database = "MyDatabase"; 

此外,它看起來就像你正在使用Windows身份驗證連接;確保當前登錄的用戶具有進行備份的適當權限。