Manualmente (e quindi, con un po 'di sforzo, a livello di programmazione) è possibile utilizzare il comando KILL
per chiudere in modo completo le connessioni aperte al database.
Identificare le convenzioni da chiudere, ora è la parte difficile. Inizia con le procedure di sistema SP_WHO
e SP_WHO2
per identificare manualmente quali connessioni utilizzano i database; l'utilizzo e l'analisi di queste procedure può portare a riferimenti agli oggetti di sistema sys.processes, sys.dm_exec_sessions e a una moltitudine di altre, seguite da un'eventuale comprensione degli SPID e da un inevitabile rispetto perverso dei pool di connessioni.
Tutti questi sono trattati in dettaglio nella documentazione in linea di SQL. È l'inizio di un labirinto piuttosto esteso, e in che misura si arriva fino in fondo dipende dai tuoi obiettivi e obiettivi finali.
fonte
2014-05-19 13:57:17
Ho notato che non è possibile portarlo offline se ci sono persone connesse al database, a meno che non si scolleghino ottenendo il proprio database in modalità utente singolo. –
[Savin 'ya a google] (http://blog.sqlauthority.com/2010/04/24/sql-server-t-sql-script-to-take-database-offline-take-database-online/) : 'ALTER DATABASE [myDB] SET OFFLINE CON ROLLBACK IMMEDIATE' e' ALTER DATABASE [myDB] SET ONLINE' – ruffin
La finestra di dialogo per l'acquisizione offline di un database non è interattiva. Lo tenta semplicemente senza prima chiederlo e annullare non funziona. E potrebbe volerci molto tempo prima che fallisca. Invece, se si scollega il database, esiste un'opzione per eliminare le sessioni correnti. –