简体   繁体   English

使用没有 DATABASE 的 SMO 还原 DB 正在使用错误

[英]Restore DB using SMO without DATABASE is in use error

I am using SMO to restore the database,我正在使用 SMO 来恢复数据库,

 ServerConnection con = new ServerConnection(_serverName, _userName, _password);
 Server server = new Server(con);
 Restore destination = new Restore();
 destination.Action = RestoreActionType.Database;
 destination.Database = _databaseName;
 BackupDeviceItem deviceItem = new BackupDeviceItem(path, DeviceType.File);
 destination.Devices.Add(deviceItem);
 destination.ReplaceDatabase = true;
 destination.NoRecovery = true;
 destination.SqlRestore(server);

I am getting an exception message:我收到一条异常消息:

Exclusive access could not be obtained because the database is in use.无法获得独占访问权限,因为数据库正在使用中。 RESTORE DATABASE is terminating abnormally. RESTORE DATABASE 异常终止。

I resolved the issue by killing the connected processes and database我通过杀死连接的进程和数据库解决了这个问题

ServerConnection con = new ServerConnection(_serverName, _userName, _password);
Server server = new Server(con);
Restore destination = new Restore();
destination.Action = RestoreActionType.Database;
destination.Database = _databaseName;
BackupDeviceItem deviceItem = new BackupDeviceItem(path, DeviceType.File);
destination.Devices.Add(deviceItem);
destination.ReplaceDatabase = true;
destination.NoRecovery = true;
server.KillAllProcesses("your db name");
server.KillDatabase("your db name");
destination.SqlRestore(server);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM