使用连接字符串创建Server对象执行SQL Server还原时提示无法获取独占访问权的问题排查求助
使用连接字符串创建Server对象执行SQL Server还原时提示无法获取独占访问权的问题排查求助
大家好,我遇到一个挺棘手的奇怪问题,和SQL Server的Server对象使用有关。当我采用SQL Server认证方式执行数据库还原操作时,总会收到这样的错误提示:
Exclusive access could not be obtained because the database is in use
我先跟大家说下具体情况:
- 还原按钮的点击事件代码里,我明明调用了
server.KillAllProcesses(DB_NAME)来终止目标数据库的所有关联进程 - 如果我直接用实例名创建Server对象,比如
Server server=new Server("localhost\PharmSpec"),不管是本地机器还是虚拟机上,还原操作都能正常跑通 - 但如果我改用连接字符串来创建Server对象,还原就失败了,而且这个问题只在虚拟机上出现,本地机器完全没问题
- 连接字符串肯定是正确的,因为备份、归档这类其他数据库操作都能正常执行,唯独还原在虚拟机上卡壳
下面是还原按钮点击事件的代码片段(部分内容省略):
private void Restore_OK_But_Click(object sender, System.EventArgs e) { SAForm m_saForm; string strSAPswd; // 后续还原相关代码(原内容省略) }
有没有大佬能帮我分析下这到底是哪里出问题了呀?
备注:内容来源于stack exchange,提问作者nikhil
相关产品推荐
相关产品推荐

