nchar ve nvarchar nedir
Sabit uzunluklu, nchar veya değişken uzunluklu nvarchar olan karakter veri türleri. SQL Server 2012'den (11.x) başlayarak, bir Tamamlayıcı Karakter (SC) etkin kullanıldığında, bu veri türleri Unicode karakter verilerinin tamamını saklar ve UTF-16 karakter kodlamasını kullanır. SC olmayan bir harmanlama belirtilirse, bu veri türleri yalnızca UCS-2 karakter kodlaması tarafından desteklenen karakter verisi alt kümesini depolar.
nchar [(n)]
Sabit uzunlukta dize verileri. n string uzunluğunu bayt-çiftler olarak tanımlar ve 1 ila 4,000 arasında bir değer olmalıdır. Depolama boyutu iki kez n bayttır. UCS-2 kodlaması için, depolama boyutu iki kez n bayttır ve saklanabilecek karakter sayısı da n'dir. UTF-16 kodlaması için, depolama boyutu hala iki bayt n bayttır, ancak Ek Karakterler iki bayt çifti kullandığı için (vekil-çift olarak da adlandırılır) saklanabilecek karakter sayısı n'den küçük olabilir. Nchar için ISO eş anlamlıları ulusal karakter ve ulusal karakterdir.nvarchar [(n | max)]
Değişken uzunluklu dize verileri. n dize uzunluğunu bayt-çiftler olarak tanımlar ve 1 ile 4,000 arasında bir değer olabilir. max, maksimum depolama boyutunun 2 ^ 30-1 karakter (2 GB) olduğunu gösterir. Depolama boyutu iki kez n bayt + 2 bayttır. UCS-2 kodlaması için, depolama boyutu iki kez n bayt + 2 bayttır ve saklanabilecek karakter sayısı da n'dir. UTF-16 kodlaması için, depolama boyutu hala iki kez n bayt + 2 bayt, ancak saklanabilecek karakter sayısı n'den daha küçük olabilir, çünkü Ek Karakterler iki bayt çifti kullanır (ayrıca vekil çifti olarak da bilinir). Nvarchar'ın ISO eş anlamlıları ulusal karakter çeşitliliği ve ulusal karakter çeşitliliğidir.Uyarılar
Bir veri tanımında veya değişken bildirim bildiriminde n belirtilmediğinde, varsayılan uzunluk 1'dir. N CAST işlevinde belirtilmediğinde, varsayılan uzunluk 30'dur.Nchar veya nvarchar kullanıyorsanız, şunları yapmanızı öneririz:
Sütun veri girişlerinin boyutları tutarlı olduğunda nchar kullanın.
Sütun veri girişlerinin boyutları önemli ölçüde değiştiğinde nvarchar kullanın.
Sütun veri girişlerinin boyutları büyük ölçüde değiştiğinde ve dize uzunluğu 4.000 bayt çifti aşabileceğinde nvarchar (max) kullanın.
sysname, sistem tarafından sağlanan ve kullanıcı tarafından tanımlanamayan bir veri türüdür, ancak nvarchar (128) ile işlevsel olarak eşdeğerdir. sysname, veritabanı nesne adlarına başvuruda bulunmak için kullanılır.
Nchar veya nvarchar kullanan nesnelere, COLLATE yan tümcesi kullanılarak belirli bir harmanlama atanmamışsa, veritabanının varsayılan harmanlaması atanır.
SET ANSI_PADDING, nchar ve nvarchar için her zaman AÇIK'tır. SET ANSI_PADDING OFF, nchar veya nvarchar veri tipleri için geçerli değildir.
Bir Unicode karakter dizisinin önekini, bir SC harmanlama kullanılıp kullanılmamasına bağlı olarak UCS-2 veya UTF-16 girişini işaret etmek üzere N harfiyle sabitlenir. N öneki olmadan, dize, veritabanında belirli karakterleri tanımayacak varsayılan kod sayfasına dönüştürülür. SQL Server 2019 önizlemesinden başlayarak, UTF-8 etkin bir harmanlama kullanıldığında, varsayılan kod sayfası UNICODE UTF-8 karakter kümesini depolayabilir.