Saya mendapat databse A. Ada beberapa data di dalamnya. Saya membuat cadangan untuk file A sebagai A.bak . Lalu saya membuat database kosong baru B. Dan kemudian saya mencoba mengembalikan B dari A.bak . Tapi SQL Serve memberi tahu saya kesalahan berikut:
File 'C: \ SQL Directory \ DATA \ A.mdf' tidak dapat ditimpa. Itu sedang digunakan oleh database 'A'.
Tetapi jika saya menghapus A dari SQL Server, retore ok.
Saya tidak mengerti mengapa SQL perlu menulis ke file database asli sambil memulihkan dari file cadangan terpisah ?
Terima kasih ~
sumber
Ketika Anda mengembalikan cadangan, Anda dapat menentukan file data untuk dipulihkan.
Lihat di sini dan di sini . Anda dapat menggunakan opsi "Pulihkan file database sebagai" dan "Ganti database yang ada".
sumber
Apakah Anda menggunakan opsi REPLACE, baik dalam perintah TSQL, atau sebagai kotak centang yang dipilih? Atau, Anda dapat mengganti nama file, dan memanggil basis data sesuatu yang lain.
Anda juga akan mengalami sedikit kesulitan untuk memulihkan database yang sedang digunakan ..... Anda harus mematikan proses menggunakan database; ATAU jatuhkan / hapus basis data terlebih dahulu, tutup koneksi (ini mungkin yang paling mudah); ATAU atur database yang ingin Anda timpa menjadi sesuatu seperti mode pengguna terbatas dengan rollback segera jadi semoga hanya DBA yang dapat digunakan; ATAU bahkan menghentikan SQL Server, dan restart - semoga mendapatkan pemulihan bergulir sebelum siapa pun / apa pun menggunakan database itu.
PS mengambil cadangan dari database Anda akan menimpa, untuk berjaga-jaga.
sumber
Jika seseorang mencari solusi di GUI Management Studio setelah menggunakan
Options
halaman dan mengaktifkanOverwrite the existing database (WITH REPLACE)
opsi:Cukup klik di
Restore As
kolom dan ubah nama*.mdf
file file dan*.ldf
file tersebut.sumber