1

如何杀死所有死连接?

我在 $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 会杀死一切,但根据错误消息它不会。

任何想法如何解决这个问题?

4

0 回答 0