CHAR ve varchar (Transact-SQL)

Sabit uzunlukta veya değişken uzunlukta karakter veri tiplerini misiniz.

  • char [ ( n ) ]
    Fixed-length, non-Unicode character data with a length of n bytes.n must be a value from 1 through 8,000.Depolama boyutu n bayt sayısı. ISO veri türünün eşanlamlısı için char olan character.

  • varchar [ ( n | max ) ]
    Variable-length, non-Unicode character data.n can be a value from 1 through 8,000.max indicates that the maximum storage size is 2^31-1 bytes.Depolama girilen verilerin gerçek uzunluğunu + 2 bayt boyutudur.Girilen veri 0 karakter uzunluğunda olabilir.The ISO synonyms for varchar are char varying or character varying.

Remarks

Ne zaman n bir veri tanımı veya da Değişken alanında belirtilen bildirim, varsayılan uzunluğu 1 deyim. Ne zaman n CAST ve CONVERT işlevlerini kullanırken varsayılan 30 uzunluğundadır belirtilmedi.

Kullanan nesneler char veya varchar COLLATE yan tümcesini kullanarak, belirli bir harmanlama atandığı sürece veritabanının varsayılan harmanlama atanır. harmanlama karakter verileri depolamak için kullanılan kod sayfa denetler.

Birden çok dil desteği siteler varsa, Unicode kullanmayı göz önünde bulundurun nchar veya nvarchar karakter dönüştürme sorunları en aza indirmek için veri türleri. Kullanıyorsanız char veya varchar, şunları öneririz:

  • Kullanımı char zaman boyutu sütun veri girdilerinin tutarlı hale gelir.

  • Kullanımı varchar ne zaman sütun veri girişleri boyutlarını önemli ölçüde değişebilir.

  • Kullanımı varchar(max) sütun veri girişleri boyutlarını önemli ölçüde değişir ve boyutu 8.000 bayt aşabilir.

küme ANSI_PADDING tablo, CREATE veya ALTER tablo yürütüldüğünde, KAPALı ise bir char NULL olarak işlenen olarak tanımlanmış bir sütun varchar.

Harmanlama kod sayfa, çift baytlı karakterler kullandığında, halen depolama boyutu kalır... n bayt sayısı. Karakter dizesi bağlı olan depolama boyutu n bayt olabilir küçüktür n karakter.

Örnekler

C.Değişken bildiriminde kullanıldığında n varsayılan değer olarak gösteriliyor.

Aşağıdaki örnek, varsayılan değerini gösterir. n 1'için char ve varchar Değişken bildiriminde kullanıldığında veri türleri.

DECLARE @myVariable AS varchar
DECLARE @myNextVariable AS char
SET @myVariable = 'abc'
SET @myNextVariable = 'abc'
--The following returns 1
SELECT DATALENGTH(@myVariable), DATALENGTH(@myNextVariable);
GO

b.Varchar CAST CONVERT ile kullanıldığında, varsayılan değer n gösteriliyor.

Aşağıdaki örnek, varsayılan değerini gösterir n 30'dur, char veya varchar veri türleri ile kullanılan CAST ve CONVERT işlevler.

DECLARE @myVariable AS varchar(40)
SET @myVariable = 'This string is longer than thirty characters'
SELECT CAST(@myVariable AS varchar)
SELECT DATALENGTH(CAST(@myVariable AS varchar)) AS 'VarcharDefaultLength';
SELECT CONVERT(char, @myVariable)
SELECT DATALENGTH(CONVERT(char, @myVariable)) AS 'VarcharDefaultLength';