Unicode ile sunucu tarafı programlama

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

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

  • Bunların Unicode eşdeğerleri, UNICODE() ve nchar() ASCII() ve char() işlevleri kullanarak değiştirin.

  • Değişkenler ve saklı yordamları ve Tetikleyicileri parametrelerini Unicode olarak tanımlayın.

  • N harfi ile Unicode karakter dize sabitleri önek

UNICODE(), nchar() ve diğer işlevler kullanma

ASCII() işlev, geçirilen karakterin Unicode olmayan karakter kodunu döndürür.Bu nedenle, dizeleri Unicode olmayan ASCII işlev burada kullanacağınız Unicode dizeleri için karşılığı UNICODE() işlevini kullanın.char işlev true aynıdır; nchar Unicode karşılığı olan.

soundex() işlev temel alınarak İngilizce fonetik kuralları tanımlanır, dize yalnızca Latin karakterler a-z ve A'dan Z'ye içermediği sürece Unicode dizeleri anlamlı değildir, çünkü.

ASCII karakter ve soundex Unicode parametreleri geçirildi, ancak bu bağımsız değişkenler için Unicode olmayan dizeler örtülü olarak dönüştürülür.Bu işlevler dizeleri Unicode olmayan tanımına göre işlem gördüğünden bu Unicode karakterleri işleme önce olası kaybına neden olabilir.

UNICODE() ve nchar() işlevlerinin yanı sıra, mümkün olan her yerde Unicode aşağıdaki dize işleme işlevleri destekler: CHARINDEX(), LEFT(), LEN(), BÜYÜKHARF(), LOWER(), LTRIM(), RTRIM(), PATINDEX(), REPLACE(), QUOTENAME(), REPLICATE(), REVERSE(), STUFF(), SUBSTRING(), UNICODE().Bu işlevler Unicode bağımsız değişkenleri kabul Unicode dizeleri 2 baytlık karakter sınırları saygı gösterin ve Unicode sıralama kuralları Dize karşılaştırmaları için giriş parametreleri Unicode olduğunda kullanın.

Saklı yordamların parametreleri tanımlama

Bir Unicode ile parametreleri tanımlama veri türü istemci isteklerini veya giriş için Unicode sunucuda örtülü olarak dönüştürülür ve bu süreçte bozuk değil garanti eder.Parametre bir çıkış parametresi belirtilirse, bir Unicode türü de gelmek Bozulması olasılığını en aza indirir geri istemci.

Aşağıdaki saklı yordam içinde değişken bir Unicode veri türü olarak bildirildi.

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 sunucuda çalıştırılan kod görünür Unicode dize sabitleri Büyük Harf n. gelmelidirBaşvurulan sütun zaten Unicode olarak tanımlanan bile bu durum geçerlidir.n önekini dize veritabanının varsayılan kod sayfa dönüştürülür.Bu belirli karakterleri tanımıyor olabilir.

Örneğin, önceki örnekte oluşturulmuş saklı yordam sunucuda aşağıdaki şekilde yürütülebilecek:

EXECUTE Product_Info @name = N'Chain'

Kullanmak için gereksinim N üzerindeki sunucu ve istemci gönderilen kaynaklanan her iki dize sabitleri önek uygulanır