【发布时间】:2010-11-29 04:17:21
【问题描述】:
我需要从我的应用程序执行数据库恢复。在这样做之前,我想按如下方式杀死所有进程:
private void KillAllProcessesOnSMARTDatabases(Server targetServer)
{
targetServer.KillAllProcesses(SMART_DB);
targetServer.KillAllProcesses(SMART_HISTORY_DB);
targetServer.KillAllProcesses(SMART_METADATA_DB);
SqlConnection.ClearAllPools();
}
但是,当第一个 KillAllProcesses 运行时,我得到以下异常:
Microsoft.SqlServer.Management.Smo.FailedOperationException:删除服务器“MYServer”的所有活动数据库连接失败。 ---> Microsoft.SqlServer.Management.Common.ExecutionFailureException:执行 Transact-SQL 语句或批处理时发生异常。 ---> System.Data.SqlClient.SqlException:只能杀死用户进程。
用于创建服务器的连接字符串具有 sa 凭据,但是,需要终止的进程是在不同的用户下启动的。我测试了类似的场景,测试成功了。
这只是最近才开始发生的。对我来说,似乎有一些进程不是由用户启动的?
【问题讨论】:
标签: sql-server smo