c# - 使用没有 DATABASE 的 SMO 还原 DB 正在使用错误
问题描述
我正在使用 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);
我收到一条异常消息:
无法获得独占访问权限,因为数据库正在使用中。RESTORE 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);
推荐阅读
- sql - 如何将项目添加到 sqlite3 中的单个列表
- java - 如何使用 Netty 从 Java 应用程序提出 GET 查询?
- php - 给定 [API 基本 URL:] 的邮箱中的地址不符合 RFC 2822, 3.6.2。拉拉维尔
- mysql - 用其他列中的值替换列值
- javascript - 按钮不起作用,页面在 POST 方法后继续加载
- c# - 无法将类型“字符串”隐式转换为“System.Collections.Generic.List”
' - php - 如果从数据库中删除用户帐户但用户已登录,则销毁会话
- arduino - Arduino 的命令行参数(Teensy)
- c# - 没有从剃须刀页面发送 Http Put
- java - 无法解析符号“GeoPoint”