Saya akan mengatakan jangan pernah menggunakan hal "Ambil Offline" di GUI kecuali Anda tahu fakta bahwa database tidak digunakan. Apa saja. Itu sulit diketahui tanpa melakukan kerja keras, jadi mengapa tidak menyimpan skrip ini di suatu tempat dan selalu menggunakan ini?
USE [master];
GO
ALTER DATABASE $dbname$ SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE $dbname$ SET OFFLINE;
Dan kemudian kebalikannya tentu saja:
ALTER DATABASE $dbname$ SET ONLINE;
GO
ALTER DATABASE $dbname$ SET MULTI_USER;
Alasan Anda perlu mengaturnya SINGLE_USER
terlebih dahulu adalah untuk menendang keluar setiap pengguna yang ada (ada opsi untuk melakukannya pada dialog lepaskan, tetapi tidak mengambil dialog luring), karena SQL Server memerlukan akses eksklusif ke database untuk mengambil itu offline. Sekarang, Anda mungkin ingin melakukan kerja keras tambahan untuk melihat siapa yang saat ini menggunakan database, seolah-olah Anda melakukan ini di tengah operasi cadangan besar atau pekerjaan ETL atau apa pun, yang mungkin bermasalah.
EDIT : Saya telah mengajukan saran tentang Connect tentang ini (lihat Hubungkan # 2687832 ) dan juga telah mempostingnya ke Trello (diajukan di bawah "Object Explorer").
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
pertama ... kalau tidak, hanya duduk dan menunggu, dan untuk database yang sibuk, itu bisa selamanya.