Unicode ile sunucu tarafı programlama

Bir veritabanı oluşturmak için Unicode duyarlı Unicode uyumlu istemci etkileşimleri kullanarak ek olarak tanımlayan ilgilinchar,nvarchar, venvarchar(max)veri türleri tanımlama Unicode depolama.Unicode uyumlu istemci etkileşimi veritabanı sunucu tarafında aşağıdakileri gerçekleştirerek tanımlayabilirsiniz:

  • Unicode olmayan veri türleri Unicode veri türlerini tablo sütunlarını ve CONVERT() ve CAST() işlemleri geçin.

  • Kendi Unicode eşdeğerleriyle, UNICODE() ve NCHAR() ASCII() ve CHAR() işlevlerini kullanarak değiştirin.

  • Unicode, değişkenler ve saklı yordamları ve Tetikleyicileri parametreleri tanımlayın.

  • Unicode karakter dize sabitleri k. harfiyle öneki

UNICODE(), NCHAR() ve diğer işlevler

ASCII() işlev, geçirilen karakterin Unicode olmayan karakter kodunu döndürür.Bu nedenle burada dizeleri Unicode olmayan ASCII işlevini kullanırsınız Unicode dizelerini karşılık gelen UNICODE() işlevini kullanın.CHAR işlev aynı geçerlidir; NCHAR Unicode karşılığı.

SOUNDEX() işlev İngilizce fonetik kurallarına göre tanımlanır, dize yalnızca Latin karakterleri A-Z ve a-z içermiyorsa Unicode dize anlamlı değildir, çünkü.

ASCII, CHAR ve SOUNDEX Unicode parametreleri geçirilebilir; bu bağımsız değişken Unicode olmayan Dizeler için dolaylı olarak dönüştürülür.Bu işlevler Unicode olmayan Dizeler tanım olarak çalışması için bu olası Unicode karakterleri işleme önce kaybına neden olabilir.

Mümkün olan her yerde aşağıdaki dize işleme işlevlerinin yanı sıra UNICODE() ve NCHAR() işlevleri, Unicode desteği: CHARINDEX(), LEFT(), LEN(), BÜYÜKHARF(), LOWER(), LTRIM(), RTRIM(), PATINDEX(), REPLACE(), QUOTENAME(), REPLICATE(), REVERSE(), STUFF(), SUBSTRING(), UNICODE(). Bu işlevlerin Unicode bağımsız değişkenlerini almak, Unicode dize 2 baytlık karakter sınırlarını dikkate almanız ve Unicode dize karşılaştırmaları için kuralları olduğunda Giriş parametreleri Unicode sıralama kullanın.

Saklı yordam parametreleri tanımlama

Bir Unicode parametrelerini tanımlama tür istemci isteklerini veya giriş Unicode'a sunucuda örtülü olarak dönüştürülmesi ve işlem sırasında bozuk olduğunu garanti eder.Parametre bir OUTPUT parametresi belirtilirse, bir Unicode türü istemciye yolu üzerinde bozulma olasılığını da azaltır.

Aaıdaki saklı yordamı, değişken bir Unicode veri türü olarak bildirilir.

CREATE PROCEDURE Product_Info
    @name nvarchar(40)
AS
SELECT p.ListPrice, v.Name
    FROM Production.Product p 
        INNER JOIN Purchasing.ProductVendor pv
            ON p.ProductID = pv.ProductID  
        INNER JOIN Purchasing.Vendor v
            ON pv.VendorID = v.VendorID
WHERE p.Name = @name;

N önekini kullanarak

Saklı yordamları ve tetikleyicileri, gibi sunucu üzerinde çalıştırılan kod, bir Unicode dize sabitleri k. büyük harfi gelmelidirBaşvurulan sütun Unicode olarak tanımlanmış bile bu durum geçerlidir.N önekini dize için veritabanının varsayılan kod sayfa dönüştürülür.Bazı karakterler tanımayabilir.

Örneğin, önceki örnekte oluşturulmuş saklı yordam aşağıdaki şekilde sunucuda çalıştırılabilir:

EXECUTE Product_Info @name = N'Chain'

Kullanmak için gereksinimNönek kaynağı bulunan sunucu ve istemci. gönderilen her iki dize sabitleri için geçerlidir