Necesito realizar una restauración de la base de datos desde mi aplicación. Antes de hacer esto, quiero matar a todos los procesos de la siguiente manera:Eliminar todas las conexiones activas de la base de datos fallidas para el servidor al ejecutar KillAllProcesses
private void KillAllProcessesOnSMARTDatabases(Server targetServer)
{
targetServer.KillAllProcesses(SMART_DB);
targetServer.KillAllProcesses(SMART_HISTORY_DB);
targetServer.KillAllProcesses(SMART_METADATA_DB);
SqlConnection.ClearAllPools();
}
Sin embargo, cuando se ejecuta la primera KillAllProcesses, me sale el siguiente excepción:
Microsoft.SqlServer.Management.Smo.FailedOperationException : Eliminar todas las conexiones de bases de datos activas que fallaron para el servidor 'MYServer'. ---> Microsoft.SqlServer.Management.Common.ExecutionFailureException: se produjo una excepción al ejecutar una instrucción o lote de Transact-SQL. ---> System.Data.SqlClient.SqlException: solo se pueden eliminar los procesos de usuario.
La cadena de conexión utilizada para crear el servidor tiene sa credenciales, sin embargo, los procesos que necesitan ser terminados se inician bajo un usuario diferente. Probé el escenario similar y la prueba tuvo éxito.
Esto comenzó a suceder solo recientemente. Para mí, parece que hay algunos procesos en ejecución que el usuario no ha iniciado.
¡Y suelte la base de datos! Lo importante es saber ... – Guillaume86