Bagaimana cara mengganti nama database SQL Server?
Terkadang kita perlu mengubah nama database karena nama asli didasarkan pada proyek yang menjadi tidak relevan dengan data yang disimpan ke dalam database atau Anda telah memberikan nama sementara sebelumnya dan sekarang Anda ingin mengubahnya. Terlepas dari alasan di balik mengganti nama database, dalam artikel ini, kami akan menemukan cara tentang cara mengganti nama database, kesalahan apa yang mungkin timbul saat melakukannya dan cara memperbaikinya.
Jadi untuk mengganti nama database, Anda perlu mengikuti salah satu metode seperti yang dibahas di bawah ini. Pertama-tama, kita harus membuat database yang perlu diganti namanya.
Pembuatan Database:
Pilih database apa pun di file Sistem Manajemen Server SQL (SSMS). Jika Anda tidak memilikinya, Anda dapat membuatnya dengan mengikuti prosedur ini.
- Klik kanan pada "Basis data" dalam “Penjelajah Objek” dan pilih opsi “Database Baru”
- Sebuah jendela akan muncul, di panel kiri
- Pilih "Umum" ketik nama database ke dalam pan kanan dan tekan "baik". Database akan dibuat
Ada beberapa metode untuk mengganti nama database di SQL Server, yang dibahas di bawah ini secara mendetail bersama dengan versi yang didukung oleh metode tertentu. Nanti, kami juga akan membahas kesalahan yang muncul saat mengganti nama database, dan prosedur untuk memperbaikinya.
Metode 1: Menggunakan opsi ganti nama SSMS untuk mengganti nama Database SQL Server
Ini adalah cara termudah untuk mengganti nama database. Anda harus melanjutkan seperti ini untuk melakukannya.
- Klik kanan pada nama database dari penjelajah objek
- Pilih "Ganti nama", ketik nama database, dan tekan "memasukkan"
Metode 2: Menggunakan SSMS untuk mengganti nama Database SQL Server
Cara termudah lain untuk mengganti nama database seperti mengganti nama folder apa pun di windows. Anda harus terus seperti ini untuk melakukannya. Klik pada database untuk mengganti namanya seperti mengganti nama folder windows.
Metode 3: Menggunakan T-SQL untuk mengganti nama Database SQL Server
Untuk SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016, dan 2017, perintah ini berfungsi. Jalankan pernyataan berikut.
ALTER DATABASE [test] MODIFY NAME = [test_cases]
Outputnya adalah "Nama database 'test_cases' telah ditetapkan." Seperti yang terlihat pada gambar di bawah ini.
Anda dapat menggunakan perintah T-SQL di bawah ini untuk mengubah nama database jika Anda menggunakan SQL Server 2000. Dengan SQL 2005, 2008, 2008R2, 2012, 2014, 2016 dan 2017, ini masih berfungsi, tetapi pada tahap tertentu, Microsoft mengklaim itu akan dihapus.
metode 4: Menggunakan detach and attach, ganti nama SQL Server
Menggunakan fitur detach and attach SQL Server dapat digunakan untuk menghapus database terlebih dahulu dan menetapkan database dengan nama yang berbeda saat Anda memasang kembali database. Perintah T-SQL berikut dapat digunakan untuk melakukan ini
Melepaskan database dengan menjalankan kode berikut:
EXEC sp_detach_db 'test', 'true'
Outputnya akan seperti ini
Melampirkan database.
EXEC sp_attach_db @dbname = N'test ', @ filename1 = N'C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test.mdf', @ filename2 = N'C: \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ test_log.ldf ';
Outputnya adalah:
Menggunakan SSMS untuk melepaskan dan memasang kembali database
Ini juga dapat dicapai dengan menggunakan SSMS dengan mengikuti langkah-langkah berikut.
- Klik kanan database, pilih "tugas" lalu klik "Melepaskan"
- Sekarang klik "baik"
- Sekarang untuk melampirkan database, klik kanan “Database” di “Penjelajah Objek” dan klik "Melampirkan". Sebuah layar akan muncul, klik Add. Jendela lain akan muncul dengan nama database di dalamnya seperti yang ditunjukkan di bawah ini pilih "uji".
- Tapi kami ingin menambahkannya sebagai nama database yang dimodifikasi “Test_cases” jadi ketik "Kasus cobaan" di "Lampirkan sebagai" kotak. Sekarang seperti ini. Ini akan mengganti nama database Anda.
Selanjutnya, kami akan membahas kesalahan yang mungkin timbul saat mengganti nama database. Anda memerlukan akses eksklusif ke database untuk mengganti nama database, yang memastikan bahwa database tidak memiliki koneksi database lain. Namun jika tidak demikian maka dapat mengakibatkan error seperti gambar dibawah ini. Kesalahan bahkan dapat muncul ketika kita secara tidak sengaja membuka jendela lain dengan nama database yang sama yang harus diganti namanya.
Kesalahan yang muncul saat mengganti nama database melalui SSMS dan dengan menjalankan kueri:
Dua kesalahan yang disebutkan di bawah ini memiliki dua tampilan berbeda karena muncul saat mengganti nama database menggunakan dua metode berbeda. Kesalahan 1 muncul saat mengganti nama database menggunakan SSMS dan kesalahan kedua muncul saat mengganti nama database menggunakan kueri. Kedua kesalahan tersebut menunjukkan pesan yang sama "Basis data tidak dapat dikunci secara eksklusif untuk melakukan operasi", itu berarti kesalahan muncul karena pengguna tidak diberi akses eksklusif ke database untuk mengganti nama database. Jadi untuk mengganti nama database kita perlu mengatur database di "mode pengguna tunggal“.
Kesalahan 1: Kesalahan muncul saat mengganti nama database melalui SSMS
“Tidak dapat mengganti nama tes. (Penjelajah Objek)
Informasi tambahan:
Ganti nama gagal untuk uji Database (Microsoft.SqlServer.Smo)
Pengecualian terjadi saat menjalankan pernyataan atau batch Transact-SQL.
(Microsoft.SqlServer.ConnectionInfo)
Basis data tidak dapat dikunci secara eksklusif untuk menjalankan operasi. (Microsoft SQL Server, Kesalahan: 5030) ”
Kesalahan 2: Kesalahan muncul saat mengganti nama database menggunakan kueri
"Msg 5030, Level 16, Status 2, Baris 2. Basis data tidak dapat dikunci secara eksklusif untuk melakukan operasi."
Pertama-tama, kami akan mereproduksi pesan kesalahan yang disebutkan di atas untuk memahami bahwa di skenario mana pesan tersebut muncul dan cara memperbaikinya.
- Klik kanan nama database dari “Penjelajah Objek”
- Pilih ganti nama dan ketik nama database dan tekan "memasukkan" jika berfungsi baik-baik saja tetapi jika tidak berfungsi dan menghasilkan kesalahan seperti ini “Tidak dapat mengganti nama
(ObjectExplorer). Basis data tidak dapat dikunci secara eksklusif untuk menjalankan operasi. (Microsoft SQL Server, Kesalahan: 5030) ” seperti yang terlihat pada gambar di bawah, maka Anda tidak memiliki akses eksklusif ke database untuk mengganti nama database. - Kesalahan ini berarti bahwa SQL Server tidak akan mengizinkan database untuk diubah namanya sampai kecuali ada di "Mode pengguna tunggal".
- Jadi, Anda memerlukan akses eksklusif ke database untuk mengganti nama database, untuk memahami ini buka jendela kueri lain dan pilih database "uji"
- Sekarang di jendela pertama coba jalankan kode berikut.
ALTER DATABASE [test] MODIFY NAME = [test_cases]
- Tetapi ini akan rentan terhadap pesan kesalahan seperti ini: "Msg 5030, Level 16, Status 2, Baris 2. Basis data tidak dapat dikunci secara eksklusif untuk melakukan operasi."
Larutan:
Ini akan mengkonfigurasi database untuk mengembalikan semua transaksi yang tertunda dan mengaturnya “mode pengguna tunggal” dan kemudian kembali ke "Mode multi-pengguna".
- Untuk memperbaikinya kita perlu menutup semua jendela lain di mana nama database yang sama digunakan atau untuk mengatur database “mode pengguna tunggal” dengan menggunakan perintah berikut.
Ubah set pengujian database single_user dengan rollback segera go EXEC sp_renamedb 'test', 'test_cases' go ubah database test_cases set multi_user go
- Outputnya akan seperti ini: “Transaksi yang tidak memenuhi syarat dibatalkan. Perkiraan penyelesaian rollback: 0%. Transaksi yang tidak memenuhi syarat akan dibatalkan. Perkiraan penyelesaian rollback: 100%. Nama database ‘test_cases’ telah disetel. ”
Kesimpulan:
Ini adalah beberapa cara untuk mengganti nama database. Jika salah satu cara tidak berhasil untuk Anda. Anda bisa pergi ke yang lain. Satu hal yang harus diingat bahwa mengubah nama database dengan cara ini hanya mengganti nama database. "File fisik" masih memiliki nama yang sama. Seperti yang bisa kita lihat pada gambar di bawah ini, kita telah mengubah nama database dari "uji" untuk “test_cases” tetapi di lokasi fisik, itu tetap sama.
Jadi pendekatan paling sederhana adalah menggunakan solusi 4 jika Anda ingin mengubah nama file juga. Anda harus terlebih dahulu mengubah nama file fisik sebelum melampirkan kembali file dan kemudian menentukan file yang diubah namanya saat Anda melakukan pemasangan ulang.
Selain itu, selain mengubah nama database, Anda juga perlu memeriksa apakah ada referensi dalam kode aplikasi Anda ke nama database. Ini bisa di dalam SQL Server atau di luar SQL Server.