Punya masalah yang sangat aneh dan menjengkelkan .. Entah bagaimana contoh SQL Server 2008 R2 yang berjalan di server kami sudah agak rusak.
Pertama, kami perhatikan bahwa database yang kami buat kemarin hilang. Jadi, kami melihat sekeliling dan menemukan bahwa itu masih ada di sana, tetapi terpisah. Jadi, kami mencoba melampirkan mdf tetapi mendapat pesan yang mirip The file is currently in use
.
Saya pikir itu aneh, jadi restart SQL Server. Hal yang sama ... oke, waktu untuk tindakan drastis ... jadi, saya menghentikan layanan, membuka zip mdf, memulai layanan, membuka ritsletingnya dan mencoba mengembalikannya. Pesan di atas hilang, tetapi kemudian saya mendapat:
Tidak dapat melampirkan database dengan nama yang sama dengan database yang ada
Aduh. Tentu saja itu tidak ditampilkan di database explorer, jadi tidak tahu apa yang terjadi ... pilihan terakhir:
DROP DATABASE [DatabaseName]
Tentu saja itu tidak berhasil .. itu memberitahu saya bahwa basis data tidak ada. Jadi, saya terjebak ... pada satu titik SQL Server berpikir bahwa database itu ada dan pada titik lain ia berpikir db tidak ada .. jelas itu dalam keadaan kebingungan.
Adakah yang pernah melihat ini sebelumnya? Punya ide tentang cara memperbaikinya?
sys.databases
?? Misalnya apakahSELECT * FROM sys.databases
masih mencantumkan basis data Anda?SELECT name, user_access_desc, state_desc FROM sys.databases
diungkapkan?Jawaban:
Benar .. Saya menemukan jawabannya .. beberapa badut di sini (yang tidak mau mengakuinya) mengganti nama db sehingga namanya di SSMS berbeda dengan nama file mdf dan ldf .. dan tidak hanya sedikit berbeda .. . benar-benar berbeda. LOL. Terima kasih semua atas saran bermanfaat Anda.
sumber
Jika Anda tidak memiliki izin untuk melihat basis data maka ini adalah gejalanya. Basis data tidak akan muncul dalam tampilan Anda. Apakah Anda yakin tidak hanya men-zap file database yang tidak dapat Anda akses? Apakah Anda beroperasi sebagai sysadmin?
Memperbarui
Apakah database dilepaskan atau offline ? Ketika Anda mengatakan
So, we looked around and found that it was still there, but detached
apa yang sebenarnya Anda bicarakan? Di mana Anda melihat, apa yang Anda temukan? Mengidentifikasi bahwa suatu basis data 'terpisah' (tidak seperti, katakanlah, dijatuhkan) bukanlah hal sepele.sumber
Query sys.databases. Bisa jadi database dibuat dengan spasi di akhir namanya. Jalankan kode di bawah ini dan perhatikan bahwa Anda hanya dapat membuat satu dari basis data, dan tidak masalah yang mana yang Anda buat terlebih dahulu, Anda hanya dapat membuatnya.
sumber
JALANKAN 'DBCC CHECKDB' pada master, msdb dan databasenya sendiri untuk melihat apa yang dikatakannya. Mungkin perlu menempatkan sistem ke mode pengguna tunggal untuk mendapatkan dbcc untuk berjalan dalam mode perbaikan dengan kehilangan data. Atau cukup pulihkan backup master dan msdb Anda jika perlu.
sumber
Bagi saya ini diselesaikan dengan menyegarkan Database. Saya telah melakukan beberapa pemulihan yang gagal dan melihat db, yang gagal dihapus dengan pesan kesalahan yang sama: "Basis data tidak ada di server."
sumber
Saya mengalami masalah yang sama menggunakan SQL server 2008r2.
Saya mencoba untuk menduplikasi database (versi foo) dan akhirnya membingungkan SQL server. SQL Server Management Studio berpikir bahwa database ada (MDF dan LDF memang) tetapi database master tidak berpikir database ada (tidak muncul di sys.databases)
Caranya adalah dengan mengubah nama file MDF dan LDF, lalu buat database dari SQL
create database [db name here]
lalu hapus database dan akhirnya lampirkan file MDF dan LDF dari sebelumnya.sumber