Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure SQL Managed Instance
Artikel ini menjelaskan cara mengatur atau mengubah kolase database dengan menggunakan SQL Server Management Studio (SSMS) atau Transact-SQL.
Jika tidak ada kolatasi database yang ditentukan, kolatasi server akan digunakan.
Rekomendasi
Anda dapat menemukan nama pengurutan yang didukung di Nama Pengurutan Windows dan Nama Pengurutan SQL Server; atau Anda dapat menggunakan fungsi sistem sys.fn_helpcollations.
Saat Anda mengubah kolatasi database, Anda mengubah:
Setiap kolom char, varchar, text, nchar, nvarchar, atau ntext dalam tabel sistem diubah ke kolasi baru.
Semua parameter yang ada baik char, varchar, text, nchar, nvarchar, atau ntext, serta nilai pengembalian skalar untuk prosedur tersimpan dan fungsi yang ditentukan pengguna diubah ke pengurutan baru.
Jenis data sistem char, varchar, text, nchar, nvarchar, atau ntext, dan semua jenis data yang ditentukan pengguna berdasarkan jenis data sistem ini, diubah ke koalisi default baru.
Anda dapat mengubah pengurutan dari objek baru apa pun yang dibuat dalam database pengguna dengan menggunakan klausa COLLATE dari pernyataan ALTER DATABASE. Pernyataan ini tidak mengubah kolaterasi kolom dalam tabel yang ditentukan pengguna yang ada. Ini dapat diubah dengan menggunakan COLLATE klausul ALTER TABLE.
Izin
Untuk membuat database baru, Anda memerlukan izin CREATE DATABASE dalam database master, atau izin CREATE ANY DATABASE, atau izin ALTER ANY DATABASE.
Untuk mengubah pengurutan database yang sudah ada, Anda memerlukan izin ALTER pada database.
Mengatur atau mengubah susunan database
Anda dapat mengatur atau mengubah kolase database menggunakan SQL Server Management Studio (SSMS), atau Transact-SQL (T-SQL).
Anda dapat menentukan kolase untuk database baru atau memperbarui kolase untuk database yang sudah ada dengan menggunakan SQL Server Management Studio (SSMS).
Di SQL Server Management Studio, buka Object Explorer, sambungkan ke instans Mesin Database SQL Server, perluas instans tersebut, lalu perluas Database:
- Untuk database baru: Klik kanan Database lalu pilih Database Baru. Jika Anda tidak menginginkan kolasi default, pilih halaman Opsi dan pilih kolasi dari daftar dropdown Kolasi.
- Untuk database yang sudah ada: Klik kanan database yang Anda inginkan dan pilih Properti. Pilih halaman Opsi dan pilih kolasi dari daftar dropdown kolasi.
Data setelah mengubah koalasi
Penting
Mengubah kolase database atau kolom individual tidak mengubah data dasar yang sudah disimpan dalam tabel yang ada. Kecuali aplikasi Anda secara eksplisit menangani konversi data dan perbandingan antara kolase yang berbeda, disarankan agar Anda melakukan transisi data yang ada dalam database ke kolase baru. Ini menghapus risiko bahwa aplikasi mungkin salah memodifikasi data, mengakibatkan kemungkinan hasil yang salah atau kehilangan data senyap.
Saat kolase database diubah, hanya tabel baru yang mewarisi kolase database baru secara default. Ada beberapa alternatif untuk mengonversi data yang ada ke kolase baru:
Mengonversi data secara langsung. Untuk mengonversi kolase untuk kolom dalam tabel yang sudah ada, lihat Mengatur atau Mengubah Kolase Kolom. Operasi ini mudah diterapkan, tetapi mungkin menjadi masalah pemblokiran untuk tabel besar dan aplikasi yang sibuk. Lihat contoh berikut untuk konversi kolom
MyStringsecara langsung ke pengurutan baru.ALTER TABLE dbo.MyTable ALTER COLUMN MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8;Salin data ke tabel baru yang menggunakan kolatasi baru, dan ganti tabel asli dalam database yang sama. Buat tabel baru dalam database saat ini yang akan mewarisi kolase database, menyalin data antara tabel lama dan tabel baru, menghilangkan tabel asli, dan mengganti nama tabel baru menjadi nama tabel asli. Ini adalah operasi yang lebih cepat daripada konversi di tempat, tetapi mungkin menjadi tantangan saat menangani skema kompleks dengan dependensi seperti batasan Kunci Asing, batasan Kunci Primer, dan Pemicu. Ini juga akan memerlukan sinkronisasi data terakhir antara tabel asli dan tabel baru sebelum batas waktu terakhir, jika data terus diubah oleh aplikasi. Lihat contoh berikut untuk konversi "salin dan ganti" kolom
MyStringke kollasi baru:CREATE TABLE dbo.MyTable2 (MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8); INSERT INTO dbo.MyTable2 SELECT * FROM dbo.MyTable; DROP TABLE dbo.MyTable; EXEC sp_rename 'dbo.MyTable2', 'dbo.MyTable';Salin data ke database baru yang menggunakan kolatasi baru, dan ganti database asli. Buat database baru menggunakan kolase baru, dan transfer data dari database asli melalui alat seperti Integration Services atau Wizard Impor/Ekspor di SQL Server Management Studio. Ini adalah pendekatan yang lebih sederhana untuk skema kompleks. Ini juga akan memerlukan sinkronisasi data akhir antara database asli dan baru sebelum pemotongan akhir, jika data terus diubah oleh aplikasi.
Batasan
Kolasi khusus Windows Unicode hanya dapat digunakan dengan klausul COLLATE untuk menerapkan kolasi ke jenis data nchar, nvarchar, dan ntext pada data tingkat kolom dan tingkat ekspresi. Mereka tidak dapat digunakan dengan klausul COLLATE untuk mengubah kolase database atau instans server.
Jika kolatasi yang ditentukan atau kolasasi yang digunakan oleh objek yang dirujuk menggunakan halaman kode yang tidak didukung oleh Windows, Mesin Database menampilkan kesalahan.
Pengurutan level server di Azure SQL Managed Instance dapat ditentukan saat instans dibuat dan tidak dapat diubah setelah itu. Pelajari selengkapnya di Mengatur atau mengubah kolase server.
Penting
Pernyataan ALTER DATABASE COLLATE ini tidak didukung di Azure SQL Database. Tentukan pengurutan database dan pengurutan katalog pada saat CREATE DATABASE.