me gustaria saber si alguien conoce una alternativa a pooling=false para hacer un backup y restore y no tener el problema de las conexiones abiertas.
 
para que me funcione todo con pooling=false, uso:
 
desde la BD de la cual quiero hacer el backup, hago:
 
 string consulta = "BACKUP DATABASE [" + nombreBD + "] TO DISK='" + directorioBackup + nombreBackup + "' WITH  INIT";
 
desde la BD master hago el restore:
 
 string consulta = "RESTORE DATABASE [" + nombreBD + "] FROM DISK='" + directorioBackup + nombreBackup + "' WITH REPLACE";
 
las cadenas de conexion son:
 
 Data Source=MAKINITA\SQLSERVER;pooling=false;Initial Catalog=nombreBD;Integrated Security=True
 
Data Source=MAKINITA\SQLSERVER;Initial Catalog=master;Integrated Security=True
 
--------------------------------------------------------------------------------------------------
 
una alternativa a pooling=false que probe y me dio error es antes de ejecutar el restore desde master ejecutar lo siguiente:
 
 string consulta = "Alter Database "+nombreBD+" set SINGLE_USER With ROLLBACK IMMEDIATE Alter Database "+nombreBD+" set MULTI_USER";
 
pero me da error en la 1º pagina que cargue luego, en las siguientes ya no y tampoco si vuelvo a la 1º que cargue:
 
 Error en el nivel de transporte al enviar la solicitud al servidor. (provider: Proveedor de memoria compartida, error: 0 - No hay ningún proceso en el otro extremo de la canalización.)
 
espero sabios consejos de los gurus del sql server ;) 
  
 
