Saya menggunakan permintaan ini untuk mengubah nama basis data:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Tapi itu menunjukkan kesalahan saat mengeluarkan:
Msg 5030, Level 16, Negara 2, Baris 1
Basis data tidak dapat dikunci secara eksklusif untuk melakukan operasi.
Apakah ada yang salah dengan permintaan saya?
sql
sql-server
sql-server-2008-r2
Vikram Bose
sumber
sumber
Jawaban:
Anda dapat mencoba mengatur basis data ke mode pengguna tunggal.
https://stackoverflow.com/a/11624/2408095
sumber
WITH ROLLBACK IMMEDIATE
diperlukan. Jika saya tidak menggunakannya sama sekali, apakah itu akan menyebabkan masalah?WITH ROLLBACK IMMEDIATE
saat mengubah database yang mungkin dioperasikan pengguna lain, untuk memastikan integritas operasi ini. Tetapi itu tidak benar-benar diperlukan ketika mengatur database kembali ke mode MULTI_USER lagi karena database sudah dalam mode SINGLE_USER dan Anda adalah satu-satunya pengguna tetap dapat melakukan transaksi apa pun.Atur basis data ke mode tunggal:
Cobalah untuk mengubah nama basis data:
Setel basis data ke mode Multiuser:
sumber
WITH ROLLBACk IMMEDIATE
untuk multiuser?Dalam SQL Server Management Studio (SSMS) :
Anda juga bisa mengklik kanan basis data Anda di Object Explorer dan pergi ke Properties . Dari sana, pergi ke Opsi . Gulirkan sepenuhnya ke bawah dan atur Batasi Akses ke SINGLE_USER . Ubah nama database Anda, lalu kembali dan atur kembali ke MULTI_USER .
sumber
Coba tutup semua koneksi terlebih dahulu ke basis data Anda:
Diambil dari sini
sumber
Ini melakukannya untuk saya:
sumber
Itu karena orang lain sedang mengakses database. Masukkan basis data ke mode pengguna tunggal lalu ganti namanya.
Tautan ini mungkin membantu:
http://msdn.microsoft.com/en-IN/library/ms345378(v=sql.105).aspx
dan juga:
http://msdn.microsoft.com/en-us/library/ms345378.aspx
sumber
Ubah database ke mode pengguna tunggal seperti yang ditunjukkan dalam jawaban lain
Terkadang, bahkan setelah mengonversi ke mode satu pengguna, satu-satunya koneksi yang diizinkan ke basis data mungkin sedang digunakan.
Untuk menutup koneksi bahkan setelah mengonversi ke mode pengguna tunggal coba:
Lihatlah hasilnya dan lihat ID koneksi ke database yang dimaksud.
Kemudian gunakan perintah di bawah ini untuk menutup koneksi ini (seharusnya hanya ada satu karena database sekarang dalam mode pengguna tunggal)
Ganti connection_id dengan ID di hasil permintaan 1
sumber
1.database mengatur mode pengguna tunggal ke-1
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER DENGAN ROLLBACK SEGERA
2. Ubah nama DATABASE
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
3. DATABAE MENYETEL MODEL MULIUSER
ALTER DATABASE BOSEVIKRAM_DITETULKAN SET MULTI_USER DENGAN ROLLBACK SEGERA
sumber
Cara lain untuk menutup semua koneksi:
Alat Administratif> Lihat Layanan Lokal
Hentikan / Mulai layanan "SQL Server (MSSQLSERVER)"
sumber
sumber