Mengekspor semua data (termasuk login, server yang ditautkan, pekerjaan SQL Agent, pengaturan DB Mail, dll), dan membangun kembali data tingkat instance, ditambah memuat kembali semua data pengguna, adalah banyak pekerjaan. Dan, bahkan setelah semua itu, masih belum ada jaminan bahwa Anda dapat memperbarui collation default database viaALTER DATABASE
susunan karena ada beberapa kondisi yang akan mencegah operasi dari menyelesaikan (lihat bagian "Mengubah Susunan Basis Data" dari ALTER DATABASE
dokumentasi untuk perincian) .
Namun, ada metode tidak berdokumen yaitu jauh lebih mudah. Kelemahan utama adalah bahwa itu tidak didukung. Ini bukan untuk mengatakan bahwa ada sesuatu yang salah, hanya saja jika sesuatu terjadi, Microsoft tidak akan membantu memperbaikinya (karena mereka tidak pernah menjamin bahwa itu akan berhasil).
Metode yang saya bicarakan berjalan sqlservr.exe
dengan-q {new_collation_name}
sakelar. Ada sedikit lebih dari itu, tetapi itu adalah ide dasar. Metode ini hanya memperbarui meta-data sistem, yang memiliki manfaat dan konsekuensi, yang utama adalah:
MANFAAT
- cukup cepat
- Bypass sebagian besar pembatasan yang mencegah
ALTER DATABASE
bekerja
- kemungkinan jauh lebih akurat daripada skrip apa pun yang orang buat selama bertahun-tahun untuk menjatuhkan dan membuat ulang objek
DRAWBACKS
- tidak didukung jika terjadi kesalahan
VARCHAR
data dapat berubah, JIKA halaman kode berbeda antara susunan lama dan baru, dan karakter dengan nilai 128 - 255 (0x80 - 0xFF) ada, dan karakter tersebut tidak ada sebagai karakter yang sama dengan nilai yang sama pada kode baru halaman. Jadi ada potensi untuk kehilangan data, dan data Anda perlu diteliti terlebih dahulu untuk memastikan bahwa kondisi ini tidak ada. Tetapi, ini juga berarti bahwa ada banyak kasus dengan kasus saja karakter yang memiliki nilai 0 - 127 yang tidak dalam bahaya, bahkan jika halaman kode berubah.
- Jenis Tabel yang Ditentukan Pengguna (UDTT) dilewati dan perlu diperbarui secara manual.
Untuk uraian terperinci tentang apa yang sqlservr.exe -q
dilakukan dan tidak dilakukan metode (termasuk perincian tentang cara kerja pemeriksaan di berbagai tingkat, dan masalah potensial yang harus diwaspadai), silakan lihat posting saya:
Mengubah Susunan Instans, Basis Data, dan Semua Kolom di Semua Basis Data Pengguna: Apa yang Mungkin Salah?
Untuk mengubah hanya contoh (termasuk sistem database: master
, model
, msdb
, dan tempdb
) dan satu atau lebih database (tapi tidak semua database), hanya melepaskan database (s) yang ingin Anda kecualikan dari operasi ini, dan kemudian pasang kembali mereka setelah pembaruan pemeriksaan selesai.