text

Microsoft SQL Server MSSQL Collation Dili Değiştirme: Kapsamlı Rehber

text

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:

  1. SQL Collations: SQL Server’ın önceki sürümleriyle uyumluluğu sağlar.
  2. Windows Collations: Windows işletim sisteminin desteklediği collation’ları içerir.
  3. 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.

    Similar Posts