Aracılığıyla paylaş


Harmanlama ve Unicode desteği

Alfabe SQL Serversıralama kurallarını, durum ve aksan duyarlı özellikleri için veri sağlar. Alfabe ile kullanılan karakter veri türleri gibi charve varcharDikte kod sayfası ve ilgili karakter veri türü için gösterilebilen. Yeni bir örneğini yükleme olup olmadığını SQL Server, veritabanı yedekleme geri yükleme veya sunucu istemci veritabanlarına bağlanma, yerel gereksinimler, sıralama düzeni ve verileri ile çalışma durum ve Aksan duyarlılığı anlamak önemlidir.

Sunucu, veritabanı, sütun ya da ifade için bir harmanlama seçtiğinizde, veritabanı birçok işlemlerinin sonuçlarını etkileyecek verilerinizi belirli özelliklerini atadığınız. order by kullanarak bir sorgu oluşturmak, örneğin, sonuç kümesini sıralama veritabanına uygulanan veya sorgu ifadesi düzeyinde bir collate yan tümcesini dikte harmanlama bağlı.

En iyi harmanlama desteği kullanmak için SQL Server, bu konu ve nasıl onlar verilerinizin özelliklerle ilgili terimler anlamalısınız.

Bu Konuda

Harmanlama terimleri

Unicode desteği

Takıma giren karakterler

GB18030 desteği

Karmaşık komut dosyası desteği

ilişkili Görevler

İlişkili İçerik

Harmanlama terimleri

  • Harmanlama

  • Yerel ayar

  • Kod sayfası

  • Sıralama düzeni

Harmanlama

Bir harmanlama, bir veri kümesindeki her bir karakteri temsil eden bit desenleri belirtir. Alfabe de sıralayabilir ve verileri karşılaştırma kuralları belirler. SQL Serverfarklı alfabe tek bir veritabanında depolama nesneler destekler. Unicode olmayan sütunlar için harmanlama ayarı veri ve hangi karakterleri temsil edilmesi için kod sayfasını belirtir. Unicode olmayan sütunlar arasında taşınan veri kaynak kod sayfasından hedef kodu sayfaya dönüştürülmesi gerekir.

Transact-SQLdeyim farklı harmanlama ayarlarına sahip veritabanı bağlamında çalıştırıldığında deyimi sonuçları değişebilir. Mümkünse, kuruluşunuz için bir standart harmanlama kullanın. Bu şekilde, her karakter veya Unicode ifade harmanlama açıkça belirtmeniz gerekmez. Farklı harmanlama ve kod sayfası ayarları nesneleriyle çalışmak gerekir, harmanlama önceliği kuralları dikkate sorguları kod. Daha fazla bilgi için bkz: Harmanlama önceliği (Transact-sql).

Bir harmanlama ile ilgili seçenekler şunlardır: büyük/küçük harf duyarlı, aksan duyarlı, Kana-duyarlı, genişlik duyarlı. Bu seçenekler için harmanlama adı eklenerek belirtilir. Örneğin, bu harmanlama Japanese_Bushu_Kakusu_100_CS_AS_KS_WSbüyük küçük harf duyarlı, aksan duyarlı, Kana duyarlı ve genişliğe duyarlı olur. Aşağıdaki tablo bu seçenekleri ile ilişkilendirilmiş davranışı açıklanır.

Seçenek

Açıklama

Büyük küçük harf duyarlı (_cs)

Büyük ve küçük harfler arasında ayırt eder. Seçtiyseniz, küçük harfleri büyük harf sürümlerini öncesinde sıralayın. Bu seçenek seçili değilse, harmanlama duyarlı olacaktır. Yani, SQL Server sıralama amaçları için aynı olması için harfleri büyük ve küçük sürümlerini dikkate alır. _CI belirterek, büyük/küçük harf ayrımsızlığı açıkça seçebilirsiniz.

Aksan duyarlı (_as)

Vurgulu ve unaccented karakterler arasında ayırt eder. Örneğin, 'a' 'ấ' için eşit değildir. Bu seçenek seçili değilse, Harmanlamayı aksan duyarlı olacaktır. Başka bir deyişle, SQL Server sıralama amaçları için aynı olması için harfleri vurgulu ve unaccented sürümleri dikkate alır. _AI belirterek, Aksan/küçük harf ayrımsızlığı açıkça seçebilirsiniz.

Kana duyarlı (_ks)

İki Japonca kana karakterleri arasında ayıran: Hiragana ve Katakana.If Bu seçenek seçili değilse, harmanlama büyük/küçük Kana-duyarlı olduğunu. Yani SQL Server gördüğünü Hiragana ve Katakana karakterleri eşit sıralama amaçları için. Bu seçenek kullanılmazsa, Kana-/ küçük harf ayrımsızlığı belirtme tek yöntemdir.

Genişlik duyarlı (_ws)

Tek baytlık karakter ve çift baytlı karakter olarak temsil edilen zaman karakter arasında ayırır. Bu seçenek seçili değilse, SQL Server sıralama amaçları için aynı olması için aynı karakteri tek bayt ve çift baytlı gösterimini dikkate alır. Bu seçenek kullanılmazsa, genişlik-/ küçük harf ayrımsızlığı belirtme tek yoludur.

SQL ServerAşağıdaki harmanlama kümesi destekler:

  • Windows harmanlamalar
    Windows alfabe üzerinde ilişkili bir Windows sistem yerel ayarı esas karakter verileri depolamak için kuralları tanımlayın. Bir Windows harmanlaması için Unicode veri olarak aynı algoritmayı kullanarak Unicode olmayan veri karşılaştırma uygulanır. Hangi alfabe veya dil Sözlük sıralama uygulandığında kullanılan harmanlama kuralları belirtin temel Windows ve Unicode karakter veri depolamak için kullanılan kod sayfası. Unicode ve Unicode olmayan sıralama dize karşılaştırmaları içinde belirli bir Windows sürümü ile uyumlu değildir. Bu, içinde veri türleri arasında tutarlılık sağlar SQL Server, ve ayrıca geliştiricilerin uygulamalarını dizeleri tarafından kullanılan aynı kuralları kullanarak sıralama sağlar SQL Server. Daha fazla bilgi için, bkz. Windows harmanlaması adı (Transact-sql).

  • İkili alfabe
    İkili alfabe yerel ayar ve veri türü tanımlanan kodlu değer serisini temel alarak verileri sıralama. Onlar büyük/küçük harf duyarlıdır. Bir ikili alfabe de SQL ServerYerel ve kullanılacak olan ANSI kod sayfasını tanımlar. Bu ikili sıralama düzeni uygular. Çünkü onlar nispeten basit, ikili alfabe uygulama performansını artırmak. Unicode olmayan veri türleri için veri karşılaştırmaları ANSI kod sayfasında tanımlanan kod noktaları dayanır. Unicode veri türleri için Unicode kod noktaları veri karşılaştırma dayanmaktadır. Unicode veri türleri üzerinde ikili alfabe için yerel verileri sıralar sayılmaz. Unicode verileri kullanıldığında, Latin_1_General_BIN ve Japanese_BIN aynı sıralama sonuçları verim.

    Önceki sürümlerindeki ikili alfabe SQL Serverilk karakter olarak bir bayt bayt karşılaştırma tarafından takip wchar karşılaştırıldığında. Geriye doğru uyumluluk nedenleriyle, varolan ikili alfabe semantiği değiştirilmeyecek.

    Bu sürümündeki ikili alfabe SQL Serverbir saf kod noktası karşılaştırma alfabe düzenlerini içerir. Gerçek kod noktası karşılaştırma yararlanmak için ikili alfabe için geçirebilirsiniz. Yeni uygulamalar geliştirmek için ikili alfabe kullanmalısınız. BIN2 soneki yeni kod noktası harmanlama mantığı uygulayan harmanlama adlarını tanımlar. BIN2 için yeni ikili sıralama için karşılık gelen bir karşılaştırma bayrağı de bulunmaktadır. Avantajı, basit uygulama geliştirme ve daha net semantiği içerir.

  • SQL Serveralfabe
    SQL Serveralfabe (sql_ *) sağlamak sıralama sipariş daha önceki sürümleri ile uyumluluk SQL Server. Unicode olmayan veri sözlüğü sıralama kuralları, Windows işletim sistemleri tarafından sağlanan herhangi bir sıralama rutin ile uyumsuz. Ancak, Unicode veri sıralama belli bir sıralama kuralları Windows sürümü ile uyumlu. Çünkü SQL Serveralfabe kullanın farklı karşılaştırma kuralları olmayan-Unicode ve Unicode verileri için sen-ecek görmek alttaki veri türüne bağlı olarak aynı verilerin farklı sonuçlar karşılaştırmaları için. Daha fazla bilgi için, bkz. SQL Server harmanlama adı (Transact-sql).

    [!NOT]

    Ne zaman İngilizce örneği yükseltme SQL Server, SQL Serveralfabe (sql_ *), varolan örneği ile uyumluluk için belirtilebilir SQL Server. Çünkü örneği için varsayılan harmanlama SQL Serverise kurulum sırasında tanımlanan, aşağıdaki doğru olduğunda, harmanlama ayarları dikkatle belirttiğinizden emin olun:

    • Uygulama kodunuzun önceki davranışı üzerinde bağlıdır SQL Serveralfabe.

    • Birden çok dil yansıtan karakter veri depolamanız gerekir.

Örnek aşağıdaki düzeylerinde ayarı alfabe desteklenir SQL Server:

  • Sunucu düzeyinde alfabe
    Varsayılan Sunucu harmanlaması sırasında ayarlanır SQL ServerKurulum ve ayrıca sistem veritabanları ve tüm kullanıcı veritabanları varsayılan harmanlama olur. Yalnızca Unicode alfabe sırasında seçilemez Not SQL Serverçünkü onlar are değil taraftar sunucu düzeyinde alfabe Kur.

    Bir harmanlama sunucuya atandıktan sonra dışında vererek tüm nesneleri ve verileri, veritabanı harmanlama yeniden değiştiremezsiniz masterveritabanı ve tüm veritabanı nesneleri ve verileri alma. Örneği varsayılan harmanlama değiştirme yerine SQL Server, yeni veritabanı veya veritabanı sütun oluşturduğunuz zaman istenen harmanlama belirtebilirsiniz.

  • Veritabanı düzeyinde alfabe
    Ne zaman bir veritabanı oluşturulduğunda veya değiştirildiğinde, varsayılan veritabanı harmanlama belirlemek için database create veya alter database deyimi collate yan tümcesini kullanabilirsiniz. Hayır harmanlama belirtilmişse Sunucu harmanlaması veritabanı atanır.

    Sunucu harmanlaması değiştirerek sistem veritabanları dışında harmanlama değiştiremezsiniz.

    Veritabanı harmanlama veritabanındaki tüm meta verileri için kullanılır ve tüm dize sütunlar, geçici nesneler, değişken adları ve veritabanında kullanılan diğer dizeler için varsayılandır. Bir kullanıcı veritabanı harmanlama değiştirdiğinizde, geçici tablolar sorgular veritabanı erişim harmanlama çakışma için potansiyel olduğunu biliyoruz. Geçici tablolara zaman içinde saklanan tempdbharmanlama örneği için kullanacağı sistem veritabanı. Kullanıcı veritabanı arasındaki karakter verileri karşılaştırmak sorgular ve tempdbalfabe, karakter verileri değerlendiren bir çakışmaya neden başarısız olabilir. Bunu, sorguda collate yan tümcesini belirterek çözebilirsiniz. Daha fazla bilgi için, bkz. HARMANLAMA (Transact-sql).

  • Sütun düzeyinde alfabe
    Oluşturduğunuzda ya da bir tablo değiştirme her karakter sütun alfabe collate yan tümcesini kullanarak belirtebilirsiniz. Hayır harmanlama belirtilirse, sütuna veritabanının varsayılan harmanlama atanır.

  • İfade düzeyinde alfabe
    İfade düzeyinde alfabe bir deyimi çalıştırdığınızda ve bir sonuç kümesi verir şekilde etkilerler ayarlanır. Bu bölgeye özgü olmak order by sıralama sonuçları sağlar. collate yan tümcesini aşağıdaki gibi ifade düzeyinde alfabe uygulamak için kullanın:

    SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI;
    

Başa dön

Yerel ayar

Bir yerel bir konuma veya bir kültür ile ilgili bilgiler kümesidir. Bu adı ve tanımlayıcı konuşulan dil, dil ve kültürel kuralları yazmak için kullanılan komut dosyası içerebilir. Alfabe bir veya daha fazla yerel ayarları ile ilişkili olabilir. Daha fazla bilgi için bkz: Microsoft tarafından atanan yerel ayar kimlikleri.

Başa dön

Kod sayfası

Kod sayfası karakter olan bir sayısal dizin, ya da kod noktası değeri ile ilişkili belirli komut dosyası sıralanmış bir kümesidir her karakteri. Windows kod sayfası, tipik olarak anılır bir karakter kümesi veya karakter. Kod sayfaları farklı Windows sistem yerel ayarları tarafından kullanılan klavye düzenleri ve karakter kümeleri için destek sağlamak için kullanılır.

Başa dön

Sıralama düzeni

Sıralama, veri değerleri nasıl sıralanacağını belirtir. Bu veri karşılaştırma sonuçlarını etkiler. Alfabe düzenlerini kullanan verileri sıralanmış ve bu dizinleri kullanarak optimize edilebilir.

Başa dön

Unicode desteği

Unicode kod noktası karakterle eşleştirmek için bir standarttır. Dünyanın tüm diller tüm karakterleri kapsayacak şekilde tasarlandığından, farklı kod sayfaları farklı karakter kümelerini yönetmek gerek yok orada. Birden çok dil yansıtan karakter veri depolamak, her zaman Unicode veri türlerini kullanın (nchar, nvarchar, ve ntext) Unicode olmayan veri türleri yerine (char, varchar, ve text).

Önemli kısıtlamalar Unicode olmayan veri türleriyle ilişkilendirilir. Bunun nedeni, bir Unicode olmayan bilgisayar bir tek kod sayfasını kullanmak için sınırlı olacaktır. Çünkü daha az kod sayfası dönüştürme gereklidir Unicode kullanılarak performans kazancı yaşayabilirsiniz. Sunucu düzeyinde desteklenmez çünkü Unicode alfabe veritabanı, sütun veya ifade düzeyinde tek tek seçilmiş olmalıdır.

Kod sayfaları kullanan bir istemci işletim sistemi ayarları tarafından belirlenir. İstemci kod sayfaları Windows işletim sistemini ayarlamak için Bölgesel ayarları kontrol panelinde.

Sunucudan istemciye veri taşırken, Sunucu harmanlaması eski istemci sürücüleri tarafından tanınmayabilir. Unicode olmayan istemciye bir Unicode sunucudan veri taşırken, bu durum oluşabilir. Temel sistem alfabe güncelleştirilmesi istemci işletim sistemini yükseltmek için en iyi seçenek olabilir. İstemci, veritabanı istemci yazılımı yüklü varsa, veritabanı istemci yazılımı bir hizmet güncelleştirmesi uygulanıyor düşünebilirsiniz.

Sen-ebilmek da yapınmak sunucudaki veriler için farklı harmanlama kullanın. İstemci kod sayfası için eşler bir harmanlama seçin.

Mevcut utf-16 harmanlamalar kullanma SQL Server 2012, takıma giren karakterleri seçebilirsiniz _SCArama ve bazı Unicode karakterleri sıralama geliştirmek için alfabe.

Unicode veya Unicode olmayan veri türlerini kullanarak ilgili sorunları değerlendirmek için performans farklılıkları, ortamınızdaki ölçmek için senaryo sınayın. Sistemlerde kuruluşunuzda kullanılan harmanlamayı standartlaştırmak ve mümkün olan her yerde Unicode sunucular ve istemciler dağıtmak için iyi bir uygulamadır.

Birçok durumda, SQL Serverdiğer sunucuları ya da istemcileri ile etkileşim olacaktır ve kuruluşunuzda birden çok veri erişim standartları uygulama ve sunucu örnekleri arasında kullanabilir. SQL Serveristemciler bir iki ana türü vardır:

  • Unicode istemcileri ole db ve açık veritabanı bağlantısı (odbc) sürüm 3,7 ya da sonraki bir sürümünü kullanın.

  • Unicode olmayan istemciler db Kitaplığı ve odbc sürümü 3.6 veya önceki bir sürümünü kullanın.

Aşağıdaki tabloda, Unicode ve Unicode olmayan sunucular çeşitli kombinasyonları ile birden çok dildeki verileri kullanma hakkında bilgi sağlar.

Sunucu

İstemci

Sosyal haklar ya da sınırlamalar

Unicode

Unicode

Bu senaryo, en iyi performansı ve alınan verilerin bozulmasına karşı koruma sağlar, Unicode verileri sistemin tamamında kullanılacak çünkü. ActiveX Veri Nesneleri (ado), ole db ve odbc sürüm 3,7 veya sonraki bir sürümü ile durum budur.

Unicode

Unicode olmayan

Bu senaryoda, özellikle yeni bir işletim sistemi çalıştıran bir sunucu ve eski bir sürümünü çalıştıran istemci arasındaki bağlantıları ile SQL Server, ya da eski bir işletim sistemi üzerinde olabilir sınırlama ya da hatalar istemci bilgisayara veri taşırken. Unicode verilerini sunucudaki verileri dönüştürmek için Unicode olmayan istemci ilgili kod sayfası eşlemek çalışacağız.

Unicode olmayan

Unicode

Bu birden çok dildeki verileri kullanmak için ideal bir yapılandırma değildir. Unicode olmayan sunucuya Unicode veri yazamaz. Sorunları veri sunucuları sunucu kod sayfası dışında gönderildiğinde oluşma olasılığı vardır.

Unicode olmayan

Unicode olmayan

Bu, birden çok dildeki verileri için çok sınırlayan bir senaryodur. Sadece bir tek kod sayfasını kullanabilirsiniz.

Başa dön

Takıma giren karakterler

SQL Serververi türleri gibi sağlar ncharve nvarcharUnicode verilerini depolamak için. Bu veri türleri metin adı verilen bir formatta kodlamak utf-16. Unicode Konsorsiyumu her karakterin değeri 0x0000-0x10FFFF aralığında olduğu benzersiz bir CODEPOINT ayırır. En sık kullanılan karakterleri Word'e bir 16-bit bellek ve disk, ancak CODEPOINT değerleri iki ardışık 16-bit kelime 0xFFFF gerektiren daha büyük karakterlerle sığacak CODEPOINT değerleri vardır. Bu karakterler adı verilir Takıma giren karakterleri, iki ardışık 16-bit sözcükler denir ve vekil çiftleri.

Takıma giren karakterler kullanıyorsanız:

  • Takıma giren karakterler harmanlama sürümler 90 veya daha fazla sıralama ve karşılaştırma işlemlerinde kullanılabilir.

  • Tüm _100 düzeyinde alfabe, dilsel takıma giren karakterleri sıralama destekler.

  • Takıma giren karakterler kullanmak üzere meta verileri, gibi veritabanı nesneleri adlarında desteklenmez.

  • Tanıtılan SQL Server 2012, yeni bir ek karakter (sc) alfabe aile veri türleriyle kullanılabilir nchar, nvarcharve sql_variant. Örneğin: Latin1_General_100_CI_AS_SC, ya da bir Japon harmanlama kullanarak Japanese_Bushu_Kakusu_100_CI_AS_SC.

    sc bayrağı uygulanabilir:

    • Sürüm 90 Windows harmanlamalar

    • Sürüm 100 Windows harmanlamalar

    sc bayrağı uygulanamaz:

    • Sürüm 80 sürüm bilgisi olmayan Windows harmanlamalar

    • Depo GÖZÜ veya BIN2 ikili alfabe

    • sql * harmanlamalar

Takıma giren karakterler içeren ve içermeyen bir sc harmanlama da kullandıklarında aşağıdaki tabloda bazı dize işlevleri ve dize işleçleri davranışı karşılaştırır.

Dize işlevi veya işleci

Bir sc harmanlama ile

Bir sc harmanlama

CHARINDEX

LEN

PATINDEX

utf-16 yedek çifti, bir tek CODEPOINT sayılır.

utf-16 yedek çifti iki girdideki sayılır.

LEFT

REPLACE

TERS ÇEVİR

RIGHT

SUBSTRING

MALZEME

Bu işlevler her yedek çifti tek bir CODEPOINT tedavi ve beklendiği gibi çalışır.

Bu işlevler, herhangi bir vekil çiftlerini bölmek ve beklenmeyen sonuçlara neden.

NCHAR

Belirtilen Unicode CODEPOINT değer aralığı 0-0x10FFFF karşılık gelen karakter döndürür. Değer 0 ve 0xFFFF yalan belirtilen bir karakter döndürülür. Daha yüksek değerler için karşılık gelen vekil döndürülür.

0XFFFF yüksek bir değere karşılık gelen vekil yerine null döndürüyor.

UNICODE

utf-16 CODEPOINT 0 ve 0x10FFFF döndürür.

ucs-2 CODEPOINT 0 ve 0xFFFF değeri döndürür.

Bir karakter joker karakter Eşleştir

Joker karakterleri eşleşmesi için değil

Takıma giren karakterler tüm joker işlemleri için desteklenir.

Takıma giren karakterler, bu joker işlemleri için desteklenmez. Diğer joker işleçleri desteklenir.

Başa dön

GB18030 desteği

GB18030, Halk Cumhuriyeti içinde Çin Çince karakter kodlama için kullanılan ayrı bir standarttır. GB18030 içinde karakter 1, 2 veya 4 bayt uzunluğunda olabilir. SQL ServerSunucu bir istemci uygulamasından girdikleri zaman onları tanıma ve dönüştürme ve bunları doğal Unicode karakterler depolayarak GB18030 ile kodlanmış karakterler için destek sağlar. Bunlar sunucuda depolanır sonra herhangi bir sonraki işlemler Unicode karakter olarak değerlendirilir. Herhangi bir Çince harmanlama, tercihen son 100 sürümünü kullanabilirsiniz. Tüm _100 düzeyinde alfabe, dilsel GB18030 karakter sıralama destekler. Sen-ebilmek kullanma sc alfabe kullanılabilir veri takıma giren karakterleri (vekil çiftleri) içeriyorsa, SQL Server 2012Arama ve sıralama geliştirmek için.

Başa dön

Karmaşık komut dosyası desteği

SQL Servergiren, depolama, değişen ve karmaşık komut dosyaları görüntüleme destekleyebilir. Karmaşık komut dosyaları şunlardır:

  • Arapça ve İngilizce metinlerde birleşimi gibi hem sağdan sola hem de soldan sağa metin kombinasyonu içeren komut dosyaları.

  • Şekli konumlarına bağlı veya Arapça, Hintçe ve Tay dili karakterler gibi diğer karakterlerle birlikte olan karakterleri değiştirme komut dosyaları.

  • Çünkü hiçbir sonları aralarında sözcükleri tanımasını iç sözlükler gerektiren Tay dili gibi dillerde.

Veritabanı ile etkileşimli uygulamalar SQL Serverkarmaşık komut dosyaları destekleyen denetimler kullanmalısınız. Yönetilen kodda oluşturulan standart Windows form denetimlerini karmaşık komut dosyası etkin.

Başa dön

ilişkili Görevler

Görev

Konu

Ayarlamak veya SQL Server'ın örneğinin harmanlama değiştirmek nasıl açıklar.

Ayarlama veya Sunucu harmanlaması değiştirme

Ayarlama veya bir kullanıcı veritabanı harmanlama değiştirme açıklar.

Ayarlama veya veritabanı harmanlamayı değiştirme

Ayarlamak veya veritabanında bir sütunun harmanlama değiştirmek açıklar.

Ayarlama veya sütun harmanlamayı değiştirme

Sunucu, veritabanı veya sütun düzeyinde alfabe düzeni bilgi dönmek açıklar.

Harmanlama bilgileri görüntüleme

Bunları yapmak daha kolay taşınabilir bir dilden başka bir veya birden fazla dilde daha kolay destek Transact-sql deyimleri yazma açıklar.

Uluslararası Transact-sql deyimleri yazma

Hata iletileri ve nasıl Tarih, Saat ve para birimi veri kullanılan görüntülenen ve tercihleri dili değiştirme yöntemleri açıklanır.

Bir oturum dilini ayarlama

Başa dön

İlişkili İçerik

SQL Server Best Practices harmanlama değişiklik

"SQL Server en iyi uygulamaları geçiş için Unicode"

Unicode Consortium Web sitesi

Ayrıca bkz.

Kavramlar

İçerdiği veritabanı harmanlamalar

Bir tam metin dizini oluşturma, bir dil seçin