Atur atau ubah kolasi server

Berlaku untuk: SQL ServerAzure SQL Managed Instance

Kolase server bertindak sebagai kolase default untuk semua database sistem yang diinstal dengan instans SQL Server, dan juga database pengguna yang baru dibuat.

Anda harus mempertimbangkan kolasi pada tingkat server dengan hati-hati, karena hal ini dapat memengaruhi:

  • Aturan pengurutan dan perbandingan di =, JOIN, ORDER BY dan operator lain yang membandingkan data tekstual.
  • Kolasi kolom CHAR, VARCHAR, NCHAR, dan NVARCHAR dalam tampilan sistem, fungsi sistem, dan objek dalam tempdb (misalnya, tabel sementara).
  • Nama variabel, kursor, dan GOTO label. Misalnya, variabel @pi dan @PI dianggap sebagai variabel yang berbeda jika kolasi tingkat server peka terhadap huruf besar/kecil, dan dianggap sebagai variabel yang sama jika kolasi tingkat server tidak peka terhadap huruf besar/kecil.

Kolase server di SQL Server

Kolasi server ditentukan saat instalasi SQL Server. Kolasi default tingkat server didasarkan pada lokal sistem operasi.

Misalnya, susunan default untuk sistem yang menggunakan Bahasa Inggris AS (en-US) adalah SQL_Latin1_General_CP1_CI_AS. Untuk informasi selengkapnya, termasuk daftar pemetaan locale OS ke kolasi default, lihat bagian "Kolasi tingkat server" dari Kolasi dan Dukungan Unicode.

Catatan

Kolasi tingkat server untuk SQL Server Express LocalDB adalah SQL_Latin1_General_CP1_CI_AS dan tidak dapat diubah, baik selama maupun setelah penginstalan.

Mengubah kolase server di SQL Server

Mengubah kolase default untuk instans SQL Server dapat menjadi operasi yang kompleks.

Catatan

Alih-alih mengubah kolasi default instans SQL Server, Anda dapat menentukan kolasi default untuk setiap basis data baru yang Anda buat melalui klausa COLLATE pada pernyataan CREATE DATABASE dan ALTER DATABASE. Untuk informasi selengkapnya, lihat Mengatur atau Mengubah Kolasi Database.

Mengubah kolasi instans melibatkan langkah-langkah berikut:

  • Pastikan Anda memiliki semua informasi atau skrip yang diperlukan untuk membuat ulang database pengguna Anda dan semua objek di dalamnya.

  • Ekspor semua data Anda menggunakan alat seperti utilitas bcp. Untuk informasi selengkapnya, lihat Impor dan Ekspor Data Massal (SQL Server).

  • Hilangkan semua database pengguna.

  • Bangun ulang database master dengan menentukan kolasi baru di properti SQLCOLLATION dari perintah setup. Contohnya:

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
    /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ]
    /SQLCOLLATION=CollationName  
    

    Untuk informasi selengkapnya, lihat Membangun Kembali Database Sistem.

  • Buat semua database dan semua objek di dalamnya.

  • Impor semua data Anda.

Mengatur kolase server di Azure SQL Managed Instance

Kolasi pada tingkat server di Azure SQL Managed Instance dapat ditentukan ketika instans dibuat dan tidak dapat diubah setelahnya. Anda dapat mengatur kolase tingkat server melalui templat portal Azure atau PowerShell dan Resource Manager saat Anda membuat instans. Kolatasi tingkat server default adalah SQL_Latin1_General_CP1_CI_AS.

Jika Anda memigrasikan database dari SQL Server ke Azure SQL Managed Instance, periksa kolase server di SQL Server sumber menggunakan SERVERPROPERTY(N'Collation') fungsi dan buat instans terkelola yang cocok dengan kolase SQL Server Anda. Migrasi database dari SQL Server ke SQL Managed Instance dengan kolasi tingkat server yang tidak cocok dapat menimbulkan beberapa kesalahan tak terduga pada kueri. Anda tidak dapat mengubah kolasi di tingkat server pada instans terkelola yang ada.

Kolase di Azure SQL Database

Anda tidak dapat mengubah atau mengatur kolase server logis di Azure SQL Database, tetapi dapat mengonfigurasi kolase setiap database baik untuk data maupun untuk katalog. Kolasi katalog menentukan kolasi untuk metadata sistem, seperti pengenal objek. Kedua kolase dapat ditentukan secara independen saat Anda membuat database di portal Azure, di T-SQL dengan CREATE DATABASE, di PowerShell dengan New-AzSqlDatabase.