Microsoft SQL Server MSSQL Collation Dili Değiştirme: Kapsamlı Rehber
Microsoft SQL Server, dünya genelinde yaygın olarak kullanılan güçlü bir veritabanı yönetim sistemidir. Bu sistemde veritabanı dilinin belirlenmesi için kullanılan bir özellik olan “collation” önemli bir rol oynar. Collation, metin verilerinin nasıl sıralandığını ve karşılaştırıldığını tanımlar. Bu yazıda, MSSQL’de collation dilini değiştirme sürecini adım adım inceleyeceğiz.
Collation Nedir?
Collation, SQL Server’da metin verilerinin sıralama ve karşılaştırma kurallarını belirler. Bu kurallar, veritabanında hangi karakter setinin kullanılacağını ve verilerin nasıl sıralanacağını etkiler. Örneğin, “Türkçe_CI_AS” collation, Türkçe karakterlerin doğru bir şekilde sıralanmasını sağlar.
Collation Türleri
SQL Server’da farklı collation türleri bulunur. Bunlar genel olarak üç ana kategoriye ayrılır:
- SQL Collations: SQL Server’ın önceki sürümleriyle uyumluluğu sağlar.
- Windows Collations: Windows işletim sisteminin desteklediği collation’ları içerir.
- Binary Collations: Karakterlerin ikili değerlerine göre sıralama yapar.
Neden Collation Değiştirmek Gerekir?
Collation değişikliği, aşağıdaki durumlarda gerekli olabilir:
- Dil Desteği: Veritabanınız farklı bir dil için optimize edilmelidir.
- Uyumluluk: Diğer veritabanları veya uygulamalarla uyumluluk sağlanması gerekebilir.
- Sıralama Kuralları: Farklı sıralama kurallarına ihtiyaç duyulabilir.
Collation Dili Değiştirme Adımları
1. Mevcut Collation’ı Kontrol Etme
Öncelikle, mevcut collation ayarını kontrol etmek önemlidir. Bunun için aşağıdaki sorguyu kullanabilirsiniz:
SELECT DATABASEPROPERTYEX('VeritabaniAdi', 'Collation') AS VeritabanıCollation;
2. Yeni Collation Seçimi
Yeni collation’ı seçerken dikkatli olunmalıdır. Aşağıdaki örnekler yaygın olarak kullanılan collation türleridir:
- SQL_Latin1_General_CP1_CI_AS: İngilizce (ABD) için yaygın.
- Turkish_CI_AS: Türkçe için yaygın.
3. Veritabanı Collation’ı Değiştirme
Veritabanı collation’ı değiştirmek için aşağıdaki adımları izleyin:
Veritabanını Yeniden Adlandırma (Opsiyonel)Veritabanınızı yedekleyin ve daha sonra yeniden adlandırın:
ALTER DATABASE VeritabaniAdi MODIFY NAME = YeniVeritabaniAdi;
Yeni Collation AtamaYeni collation’ı atamak için şu sorguyu kullanın:
ALTER DATABASE VeritabaniAdi COLLATE YeniCollationAdi;
Örnek:
ALTER DATABASE VeritabaniAdi COLLATE Turkish_CI_AS;
4. Tablo Düzeyinde Collation Değişikliği
Bazı durumlarda, sadece belirli tabloların veya sütunların collation’ını değiştirmek gerekebilir:
Sütun Collation’ı Değiştirme
ALTER TABLE TabloAdi ALTER COLUMN SütunAdi VARCHAR(50) COLLATE YeniCollationAdi;
Tüm Sütunların Collation’ını Değiştirme
Tüm sütunların collation’ını değiştirmek için dinamik SQL kullanabilirsiniz:
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += 'ALTER TABLE ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) +
' ALTER COLUMN ' + QUOTENAME(COLUMN_NAME) + ' ' + DATA_TYPE +
CASE WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL THEN
'(' + CAST(CHARACTER_MAXIMUM_LENGTH AS NVARCHAR) + ')' ELSE '' END +
' COLLATE Turkish_CI_AS;'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo' AND DATA_TYPE IN ('char', 'varchar', 'text', 'nchar', 'nvarchar', 'ntext');
EXEC sp_executesql @sql;
Collation Değişikliğinde Dikkat Edilmesi Gerekenler
- Yedek Alma: Collation değişikliği öncesinde veritabanınızı yedekleyin.
- Test: Değişiklikleri canlı sisteme uygulamadan önce test ortamında deneyin.
- Bağımlılıklar: Uygulamalarınızın collation değişikliğinden etkilenip etkilenmeyeceğini kontrol edin.
Sonuç
MSSQL’de collation dili değiştirme, doğru adımlar izlenerek gerçekleştirildiğinde veritabanınızın daha uyumlu ve dil desteği açısından zengin olmasını sağlar. Yukarıdaki rehberi izleyerek, collation dilini başarıyla değiştirebilir ve veritabanınızın performansını artırabilirsiniz.