Ben veritabanı kullanımda olmadığını bir gerçek bilmiyorsanız hiç GUI "Çevrimdışı Al" şey kullanmayın söyleyebilirim. Bir şey tarafından. Biraz ayak işi yapmadan bunu bilmek zordur, öyleyse neden bu komut dosyasını bir yere kaydetmiyorsunuz ve her zaman kullanıyorsunuz?
USE [master];
GO
ALTER DATABASE $dbname$ SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE $dbname$ SET OFFLINE;
Ve sonra karşılıklı olarak elbette:
ALTER DATABASE $dbname$ SET ONLINE;
GO
ALTER DATABASE $dbname$ SET MULTI_USER;
İlk olarak ayarlamanızın nedeni SINGLE_USER
, var olan kullanıcıları dışarı atmaktır (ayırma iletişim kutusunda bunu yapma seçeneği vardır, ancak çevrimdışı alma iletişim kutusunda değil), çünkü SQL Server'ın almak için veritabanına özel erişime ihtiyacı vardır çevrimdışı. Şimdi, büyük bir yedekleme işleminin veya ETL işinin ortasında ya da neyiniz varmış gibi, şu anda veritabanını kimin kullandığını görmek için yine de ekstra ayak işi yapmak isteyebilirsiniz, bu sorunlu olabilir.
DÜZENLEME : Bu konuda Bağlan bir öneri bulundular (bkz 2687832 Bağlan # ) ve ayrıca bunu gönderdiniz Trello ( "Object Explorer" altında yayımlandı).
ALTER DATABASE foo SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
... aksi halde sadece oturur ve bekler ve yoğun bir veritabanı için bu sonsuza kadar olabilir.