Sunucu harmanlamasını ayarlama veya değiştirme

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

Sunucu harmanlaması, SQL Server örneğiyle birlikte yüklenen tüm sistem veritabanları ve ayrıca yeni oluşturulan tüm kullanıcı veritabanları için varsayılan harmanlama işlevi görür.

Aşağıdakileri etkileyebileceğinden, sunucu düzeyinde harmanlamayı dikkatli bir şekilde dikkate almanız gerekir:

  • , =JOIN ve metin verilerini karşılaştıran diğer işleçlerde ORDER BYsıralama ve karşılaştırma kuralları.
  • Sistem görünümlerinde, sistem işlevlerinde ve tempdb içindeki nesnelerde (örneğin, geçici tablolar) CHAR, VARCHAR, NCHAR ve NVARCHAR sütunlarının düzenlenmesi.
  • Değişkenlerin, imleçlerin ve GOTO etiketlerin adları. Örneğin, sunucu düzeyindeki harmanlama büyük/küçük harf duyarlıysa, @pi ve @PI değişkenleri farklı değişkenler olarak kabul edilir. Eğer sunucu düzeyindeki harmanlama büyük/küçük harf duyarlı değilse, bu değişkenler aynı değişkenler olarak kabul edilir.

SQL Server'da sunucu harmanlaması

Sunucu harmanlaması SQL Server yüklemesi sırasında belirtilir. Varsayılan sunucu düzeyinde harmanlama, işletim sisteminin yerel ayarını temel alır.

Örneğin, ABD İngilizcesi (en-US) kullanan sistemler için varsayılan harmanlama SQL_Latin1_General_CP1_CI_AS. İşletim sistemi yerel ayarının varsayılan harmanlama eşlemeleri listesi de dahil olmak üzere daha fazla bilgi için Harmanlama ve Unicode Desteği'nin "Sunucu düzeyinde harmanlamalar" bölümüne bakın.

Uyarı

SQL Server Express LocalDB için sunucu düzeyi harmanlama SQL_Latin1_General_CP1_CI_AS ve yükleme sırasında veya sonrasında değiştirilemez.

SQL Server'da sunucu harmanlamasını değiştirme

SQL Server örneği için varsayılan harmanlamayı değiştirmek karmaşık bir işlem olabilir.

Uyarı

SQL Server örneğinin varsayılan harmanlamasını değiştirmek yerine, her yeni veritabanı oluşturduğunuzda COLLATE yöntemiyle CREATE DATABASE ve ALTER DATABASE deyimlerinde varsayılan bir harmanlama belirtebilirsiniz. Daha fazla bilgi için Veritabanı Dizilim Ayarlama veya Değiştirmebölümüne bakın.

Örnek harmanlamasını değiştirmek için aşağıdaki adımlar gerekir:

  • Kullanıcı veritabanlarınızı ve içindeki tüm nesneleri yeniden oluşturmak için gereken tüm bilgilere veya betiklere sahip olduğunuzdan emin olun.

  • bcp Yardımcı Programı gibi bir araç kullanarak tüm verilerinizi dışarı aktarın. Daha fazla bilgi için bkz. Verileri Toplu İçeri ve Dışarı Aktarma (SQL Server).

  • Tüm kullanıcı veritabanlarını bırakın.

  • setup komutunun SQLCOLLATION özelliğinde yeni harmanlamayı belirterek master veritabanını yeniden oluşturun. Örneğin:

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

    Daha fazla bilgi için bkz. Sistem Veritabanlarını Yeniden Oluşturma.

  • Tüm veritabanlarını ve içindeki tüm nesneleri oluşturun.

  • Tüm verilerinizi içeri aktar.

Azure SQL Yönetilen Örneği'nde sunucu harmanlamasını ayarlama

Azure SQL Yönetilen Örneği'nde sunucu düzeyinde harmanlama, örnek oluşturulduğunda belirtilebilir ve daha sonra değiştirilemez. Örneği oluştururken Azure portalı veya PowerShell ve Resource Manager şablonu aracılığıyla sunucu düzeyinde harmanlama ayarlayabilirsiniz. Varsayılan sunucu düzeyi sıralaması SQL_Latin1_General_CP1_CI_AS'dir.

Veritabanlarını SQL Server'dan Azure SQL Yönetilen Örneği'ne geçiriyorsanız, işlevi kullanarak SERVERPROPERTY(N'Collation') kaynak SQL Server'daki sunucu harmanlamasını denetleyin ve SQL Server'ınızın harmanlaması ile eşleşen bir yönetilen örnek oluşturun. Eşleşmeyen sunucu düzeyinde harmanlamalarla veritabanını SQL Server'dan SQL Yönetilen Örneği'ne geçirmek, sorgularda birkaç beklenmeyen hataya neden olabilir. Mevcut yönetilen örnekte sunucu düzeyinde harmanlamayı değiştiremezsiniz.

Azure SQL Veritabanı'nda harmanlamalar

Azure SQL Veritabanı'nda mantıksal sunucu harmanlamasını değiştiremez veya ayarlayamazsınız, ancak her veritabanının harmanlamalarını hem veriler hem de katalog için yapılandırabilirsiniz. Katalog harmanlaması, nesne tanımlayıcıları gibi sistem meta verileri için harmanlamayı belirler. Veritabanını CREATE DATABASEile T-SQL'de azure portalNew-AzSqlDatabaseile PowerShell'de oluşturduğunuzda her iki harmanlama da birbirinden bağımsız olarak belirtilebilir.