如何杀死所有死连接?
我在 $error 消息中发现了异常:
System.Management.Automation.MethodInvocationException:使用“1”参数调用“KillAllProcesses”的异常:“删除服务器'172.0.0.1'的所有活动数据库连接失败。”--->
Microsoft.SqlServer.Management.Smo.FailedOperationException:删除服务器“172.0.0.1”的所有活动数据库连接失败。---> Microsoft.SqlServer.Management.Common.ExecutionFailureException:执行 Transact-SQL 语句或批处理时发生异常。---> System.Data.SqlClient.SqlException:进程 ID 68 不是活动进程 ID。
现在我的ps脚本:
# ==== check if db exists and drop db ==== #
if($srv.Databases.Contains("$DbName"))
{
Write-Host -fore Yellow "Dropping existing db: $DbName on Server: $Server"
$srv.KillAllProcesses($DbName)
$srv.KillDatabase($DbName)
# show us errors
$error = $_.Exception
while ( $error.InnerException )
{
$error = $error.InnerException
Write-Host -fore Red $error.Message
}
Write-Host -fore Yellow "Completed deleting db: $DbName on Server: $Server"
}
else {
Write-Host "Database $DbName does not exists"
}
# ==== check if db exists and drop db ==== #
我认为 KillAllProcesses 会杀死一切,但根据错误消息它不会。
任何想法如何解决这个问题?