Harmanlama ve uluslararası terminoloji
Harmanlamalar SQL Server sağlayan sıralama kuralları, durum ve Aksan duyarlılığı özellikleri veri.CHAR ve varchar kod sayfa dikte etmek gibi karakter veri türleriyle kullanılan alfabe ve bu veri türünü temsil karşılık gelen karakter.Olup, yeni bir yükleme yapıyorsanız örnek , SQL Server, bir veritabanı yedeklemesini geri yüklemek veya sunucu istemci veritabanlarına bağlanma, yerel ayar ayar gereksinimler, sıralama düzenini ve sizin olması ile çalışma verileri durum ve Aksan duyarlılığı anlamak önemlidir.
Sunucu, veritabanı, sütun veya deyim için bir harmanlama seçeneğini belirlediğinizde, belirli özelliklere etkileyecek verileriniz için atadığınız sonuçlar veritabanınızdaki birçok işlemleri.Örneğin, ne zaman size oluşturmak bir sorgu order by, sıralama düzeni sırasını kullanarak kendi sonuç küme , veritabanına uygulanan veya içinde bir sorgu deyimi düzeynde collate yan tümce tümce tümcesini dikte harmanlama bağımlı olabilir.
Bir harmanlama aşağıdaki özelliklere bazılarını veya tümünü içerebilir:
Büyük/küçük harf duyarlılığı
Aksan duyarlılığı
Kana duyarlılığı
Genişlik duyarlılığı
Harmanlama desteği en iyi şekilde kullanmak için SQL Server, bu konu ve özellikleri veri. ilişkileri içinde tanımlanan terimleri anlamanız gerekir
Şartları
Alfabe düzeni
Yerel Ayar
Unicode
Kod sayfa
Veri türleri
Sıralama düzeni
Alfabe düzeni
Her bir karakteri temsil eden bit desenleri bir alfabe belirtir bir veri küme.Collations also determine the rules that sort and compare data.SQL Server supports storing objects with different collations in a single database.Unicode olmayan sütunlar için harmanlama ayarı belirtir kod sayfa veri ve hangi karakterleri temsil edilebilir.Unicode olmayan sütunlar arasında taşınan veri kaynak kod sayfasından hedef kod sayfa dönüştürülmesi gerekir.
Transact-SQL farklı harmanlama ayarlarına sahip farklı veritabanları bağlamında deyim çalıştırdığınızda deyim sonuçlar değişebilir.Mümkünse, standartlaştırılmış harmanlama kuruluşunuz için kullanın.Bu şekilde, her karakter veya Unicode ifade harmanlama açıkça belirtmeniz gerekmez.Farklı alfabe ve kod sayfa ayarları olan nesnelerle çalışmak gerekir, sorgularınızı harmanlama öncelik kuralları göz önünde bulundurulması gereken kodu.Daha fazla bilgi için bkz: Harmanlama önceliği (Transact-sql).
Bir harmanlama özelliklerinin, dil duyarlılığı, durum duyarlılığı, vurgu duyarlılığı, Kana duyarlı ve genişlik duyarlılığı olan.
SQL Server alfabe aşağıdaki harmanlama ayarlar şunlardır:
Windows harmanlamalar
Windows harmanlamaları ilişkili bir Windows tabanlı karakter verileri depolamak için kurallar tanımlamak sistem yerel ayar ayar ayarı.Windows harmanlaması, Unicode veri olarak aynı algoritmayı kullanarak Unicode olmayan veri harmanlama uygulanır.Temel Windows hangi alfabe veya dil sözlük sıralama uygulandığında kullanılan harmanlama kurallarını belirlemek ve Unicode olmayan karakter verileri depolamak için kullanılan kod sayfa.Unicode ve Unicode olmayan sıralama Dize karşılaştırmaları içinde belirli bir Windows sürüm ile uyumlu değildir.Bu veri türleri içinde arasında tutarlılık sağlar SQL Server, ve ayrıca geliştiricilerin uygulamalarını dizeleri kullandığı kuralların aynılarını kullanarak sıralama sağlar SQL Server.Daha fazla bilgi için bkz: Kur alfabe düzeni ayarları.İkili alfabe
İkili alfabe yerel ayar ve veri türü tarafından tanımlanan kodlanmış değerlerin serisini temel alarak verileri sıralama.Bunlar durum duyarlıdır.Bir ikili harmanlama , SQL Server yerel ayar ayar ve kullanılmak üzere ANSI kod sayfa tanımlar.Bu ikili sıralama düzeni uygular.Nispeten basit, çünkü bunlar, İkili alfabe uygulama performansını artırmaya yardımcı olur.Unicode olmayan veri türleri için veri karşılaştırmaları ANSI kod sayfa ' tanımlanan kod noktaları dayanır.Unicode veri türleri için veri karşılaştırmaları Unicode kod noktaları üzerinde temel alır.Unicode veri türleri üzerinde İkili alfabe için yerel ayar ayar verileri sıralar kabul edilir.Unicode veri üzerinde kullanıldığında, Latin_1_General_BIN ve Japanese_BIN aynı sıralama sonuçlar elde edebilecekleri.' In önceki sürümlerindeki İkili alfabe SQL Server karşılaştırıldığında ilk karakter olarak wchar, arkasından bir bayt düzeyinde karşılaştırma.İçin geriye dönük uyumluluk nedeniyle, var olan İkili alfabe semantik değişmez.
Bu sürümündeki İkili alfabe SQL Server dahil bir küme saf kod noktası karşılaştırma alfabe.Gerçek kod noktası karşılaştırma yararlanmak için ikili alfabe geçirebilirsiniz.Yeni uygulamalar geliştirmek için ikili alfabe kullanmanız gerekir.Kutu2 soneki uygulayan yeni kod noktası harmanlama harmanlama adlarını tanımlayan semantik.Yeni ikili sıralama için Kutu2 için karşılık gelen bir karşılaştırma bayrağı vardır.Daha fazla bilgi için bkz: BIN ve Kutu2 harmanlamalar kullanma yönergeleri.
SQL Server
SQL Serveralfabe (sql_ *) sağlamak sıralama düzeni sipariş ö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 yordamı ile uyumlu değildir.Ancak, Unicode verileri sıralama belirli bir sıralama kuralları Windows sürüm ile uyumlu değildir.Çünkü SQL Server bağlı olarak aynı veri karşılaştırmaları için farklı sonuçlar görürsünüz, alfabe Unicode olmayan ve Unicode verileri için farklı karşılaştırma kurallarını kullanıntemel veri türü. Daha fazla bilgi için bkz: SQL Server harmanlamalar kullanma.Not
İngilizce örnek yükseltme zamanı SQL Server, SQL Server alfabe (sql_ *), varolan kopyalarını ile uyumluluk için belirtilebilir SQL Server.Çünkü örnek için varsayılan harmanlama SQL Server tanımlanan kurulum sırasında aşağıdaki doğru olduğunda dikkatle harmanlama ayarlarını belirtmek önemlidir:
Uygulama kodunuzun davranışını önceki üzerinde bağlıdır SQL Server alfabe.
Kullanacağınız SQL Server ile varolan yüklemelerini çoğaltma SQL Server 6.5 veya SQL Server 7.0.
Birden çok dil gösteren karakter veri saklamanız gerekir.
örnek aşağıdaki düzeylerinde ayarı alfabe desteklenen SQL Server:
Server -düzey alfabe
Varsayılan harmanlama sırasında küme SQL Server Kur, ve sistem veritabanları varsayılan harmanlama haline de gelirNot yalnızca Unicode alfabe sırasında seçilemez SQL Server , server - desteklenmez çünkü kurulumdüzey alfabe.Bir sütun veya bir veritabanı dışında herhangi bir nesne için bir harmanlama atandıktan sonra harmanlama dışında bırakarak ve nesneyi yeniden değiştiremezsiniz.Varsayılan karşılaştırma kümesini değiştirmek yerine bir örnek , SQL Server, yeni veritabanı veya oluşturmak saat harmanlamayı belirtinveritabanı sütun.
Sorgu için sunucu harmanlama düzeni örnek için SQL Server, aşağıdakileri kullanın Transact-SQL serverproperty işlev:
SELECT CONVERT (varchar, SERVERPROPERTY('collation'))
Tüm kullanılabilir harmanlamalar için sunucuyu sorgulamak için aşağıdaki kullanın fn_helpcollations() yerleşik işlev:
SELECT * from ::fn_helpcollations()
Veritabanı -düzey alfabe
Bir veritabanı oluşturulduğunda, varsayılan veritabanı harmanlama belirtmek için create database deyim collate yan tümce tümce tümcesini kullanabilirsiniz.Hiçbir alfabe düzeni belirtilmiş olması durumunda, varsayılan harmanlama veritabanı atanır model veritabanı.Harmanlama, model veritabanının varsayılan harmanlama aynı olup örnek , SQL Server.Kullanıcı veritabanı harmanlama bir alter database kullanarak değiştirilebilir deyim aşağıdakine benzer:
ALTER DATABASE myDB COLLATE Greek_CS_AI
Bir veritabanının geçerli harmanlama aşağıdakine benzer bir deyim kullanarak elde edilebilir:
SELECT CONVERT (varchar, DATABASEPROPERTYEX('database_name','collation'))
Not
Veritabanı düzey değiştirilmesini harmanlama sütun düzey ve ifade düzeyini etkilemez harmanlamas.
Sütun -düzey alfabe
Bir tablo oluşturduğunuzda, alfabe için her karakter - belirtmekdize create table deyiminin collate yan tümce tümce tümcesini kullanarak sütun.Hiçbir alfabe düzeni belirtilmiş, sütun veritabanının varsayılan harmanlama atanır.sütun harmanlama aşağıdakine benzer bir alter table deyim kullanılarak değiştirilebilir:
ALTER TABLE myTable ALTER COLUMN mycol NVARCHAR(10) COLLATE Greek_CS_AI
İfade -düzey alfabe
deyim -düzey alfabe düzenlerini ayarlamak bir deyim çalıştırdığınızda, ve bir sonuç küme döndürülür şekilde etkilerler.Bunun olması order by sıralama sonuçlar sağlar yerel ayar-belirli.collate yan tümce tümce tümcesini aşağıdaki gibi ifade - uygulamak için kullanmakdüzey alfabe:SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI
Başa Dön
Yerel Ayar
yerel ayar ayar olan bir küme bir yere ya da bir kültür ile ilgili bilgi.Bu, adı ve tanımlayıcı konuşulan dilin dil ve kültürel kuralları yazmak için kullanılan bir komut dosyası içerebilir.Alfabe düzenlerinden bir veya daha fazla yerel ayarları ile ilişkili olabilir.
Başa Dön
Unicode
Birden çok dil gösteren 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şikilendirilir.Nedeni, Unicode olmayan bilgisayar tek bir sınırlı kod sayfa.Çünkü daha az kod sayfa dönüştürme gereklidir Unicode kullanarak performans kazancı yaşayabilirsiniz.Unicode harmanlamalarını seçilmesi gerekir tek tek veritabanı, sütunu veya ifade düzey sunucuda desteklenmez çünkü düzey.
Kod sayfaları kullanan bir istemci işletim sistemi ayarlarınız tarafından belirlenir.İçin küme istemci kod sayfası üzerinde Windows 2000, Windows xp, Windows Server 2003, veya Windows Server 2008 işletim sistemleri kullanan Bölgesel kümetings Denetim Masası'nda.
Bir istemciye bir sunucudan veri taşırken, sizin sunucu harmanlama düzeni eski istemci sürücüleri tarafından tanınmayabilir.Bir Unicode olmayan için Unicode sunucudan veri taşırken, bu durum istemci.Böylece temel sistem alfabe güncelleştirilmiş istemci işletim sistemini yükseltmek için sizin için en iyi seçenek olabilir.İstemci bilgisayarlarınızın, veritabanı istemci yazılımı yüklü varsa, veritabanı istemci yazılımı bir hizmet güncelleştirmesi uygulanıyor düşünebilirsiniz.
Sunucuda veri başka bir harmanlama kullanmak deneyebilirsiniz.Bir kod sayfa istemci üzerindeki eşleyen bir harmanlama seçin.Daha fazla bilgi için bkz: "ayarlama ve değiştirme harmanlamalar" konudaki SQL Server Books Online.
Sınama senaryonuz için Unicode veya Unicode olmayan veri türlerini kullanmak için ilgili sorunları değerlendirmek için ölçü performans farklılıkları ortamınız.Standartlaştırmak için iyi bir fikir olabilir harmanlama , kuruluşunuz genelinde kullanılan sistemlerde ve mümkün olan her yerde Unicode sunucularını ve istemcilerini dağıtmak.Unicode hakkında daha fazla bilgi için bkz: Unicode Consortium Web sitesi.
In many situations, SQL Server will interact with other servers or clients, and your organization might use multiple data access standards between applications and server instances.SQL Server clients are one of two main types:
İstemcileri Unicode ole db ve açık veritabanı bağlantısı (odbc) 3.7 veya sonraki sürüm kullanın.
Unicode olmayan istemciler db-Library ve odbc sürüm 3.6 veya önceki bir sürümünü kullanın.
Aşağıdaki tablo Unicode ve Unicode olmayan sunucular çeşitli bileşimleri ile birden çok dildeki verileri kullanma hakkında bilgi sağlar.
Sunucu |
İstemci |
Sosyal haklar ya da sınırlamalar |
---|---|---|
Unicode |
Unicode |
Sistemin tamamında kullanılacak olan Unicode verileri için bu senaryo en iyi performans ve alınan veri bozulmasına karşı bir koruma sağlar.ActiveX Data Objects (ado), ole db ve odbc sürüm 3.7 veya sonraki bir sürüm ile durumdur. |
Unicode |
Unicode olmayan |
Bu senaryoda, özellikle daha yeni bir işletim sistemi çalıştıran bir sunucu ve eski bir sürüm çalıştıran bir istemci arasındaki bağlantıları ile SQL Server, ya da daha eski bir işletim sisteminde olabilir sınırlamaları veya hataları bir istemci bilgisayar. veri taşırken,Unicode veri sunucusu üzerindeki karşılık gelen için eşlemek çalışır kod sayfa verileri dönüştürmek için Unicode olmayan istemci üzerindeki. |
Unicode olmayan |
Unicode |
Bu, birden çok dildeki verileri kullanmak için ideal bir yapılandırma değildir.Unicode olmayan sunucuya Unicode veri yazamaz.Büyük bir olasılıkla sunucu kod sayfa dışında olan sunucular için veri gönderildiğinde ortaya sorunlardır. |
Unicode olmayan |
Unicode olmayan |
Bu, birden çok dildeki verileri için çok kısıtlayıcı bir senaryodur.Yalnızca tek bir kullanabilirsiniz kod sayfa. |
Özellikle bir sunucudan Unicode Unicode olmayan istemci, istemci sunucudan veri taşırken, hatalar veya sorunlar yaşıyorsanız, sizin sunucu harmanlama düzeni eski istemci sürücüleri tarafından tanınmayabilir.Bu durumda, böylece temel sistem alfabe güncelleştirilmiş istemci işletim sistemini yükseltmek için sizin için en iyi seçenek olabilir.İstemci bilgisayarlarınızın, veritabanı istemci yazılımı yüklü varsa, veritabanı istemci yazılımı bir hizmet güncelleştirmesi uygulanıyor düşünebilirsiniz.
Sunucuda veri başka bir harmanlama kullanmak deneyebilirsiniz.Bir kod sayfa istemci üzerindeki eşleyen bir harmanlama seçin.Alfabe düzenlerini değiştirme hakkında daha fazla bilgi için bkz: "ayarlama ve değiştirme harmanlamalar SQL Server"" konudaki SQL Server Books Online.Alfabe düzenlerini değiştirme hakkında daha fazla bilgi için bkz: değiştirme Harmanlamalar ve Non - Unicode Unicode veri türlerini değiştirme etkisi Microsoft Yükleme Merkezi'nden.Unicode geçirme Unicode olmayan veri türleri hakkında daha fazla bilgi için bkz: sql Server Unicode en iyi yöntemler geçiş Microsoft Yükleme Merkezi'nden teknik incelemesi.
İlgili konular:Unicode temelleri
Başa Dön
Kod sayfası
Kod sayfa olan bir sıralı küme karakter sayısını, sayısal dizin veya kod noktası değeri, ilişkili olduğu verilen bir komut dosyasına her karakteri.Windows kod sayfa, yaygın olarak adlandırılmıştır bir karakter küme veya charset.Kod sayfaları farklı Windows sistem yerel ayarları tarafından karakter kümeleri ve kullanılan klavye düzenleri için destek sağlamak için kullanılır.
Tüm Windows Server 2008 Unicode alfabe Unicode 5.0 tabanlı.
Başa Dön
Veri Türleri
Değer aralık belirten bir tanımı, değerleri ve değerler bellekte nasıl saklandığını gerçekleştirilen işlemler, bir veri türüdür.Veri tanımlama türleri sağlar SQL Server uzayından işleme veri.Karakter veri türleri Unicode olmayan char, varchar, ve text.Unicode veri türleri nchar, nvarchar, ve ntext.Özellikle, birden çok dil gösteren karakter verileri depoladığınız uygulamalarınızda, Unicode veri türlerini kullanmak öneririz.
Unicode geçirme Unicode olmayan veri türleri hakkında daha fazla bilgi için bkz: sql Server Unicode en iyi yöntemler geçiş teknik incelemesi.
İlgili konular:Veri türleri (veritabanı altyapısı), Veri Türleri (Transact-SQL), Tümleştirme Hizmetleri veri türleri
Başa Dön
Sıralama düzeni
Sıralama düzeni veri değerleri nasıl sıralanacağını belirtir.Bu etkiler sonuçlar veri karşılaştırma.Alfabe düzenlerini kullanarak veriler sıralanır ve dizinleri kullanarak getirilebilir.
İlgili konular:Windows harmanlaması sıralama stilleri, Dizinler
Başa Dön