karakter ve değişken karakter (Transact-SQL)

Sabit uzunlukta veya değişken uzunlukta karakter veri türleri şunlardır.

  • char [ ( n ) ]
    Sabit uzunluklu, Unicode olmayan karakter veri uzunluğu ile n bayt.n8000 ile 1 arasında bir değer olmalıdır.Depolama boyutu n bayt.ISO eşanlamlı char olan character.

  • varchar [ ( n | max ) ]
    Değişken uzunlukta karakter veri Unicode olmayan.n8000 ile 1 arasında bir değer olabilir.maxdepolama boyutu sınırı 2 olduğunu gösterir ^ 31-1 bayt.Depolama boyutudur girilen verinin gerçek uzunluğu + 2 bayt.Girilen veri 0 karakter uzunluğunda olabilir.The ISO synonyms for varchar are char varying or character varying.

Açıklamalar

Zaman n belirtilmezse veri tanımı ya da değişken bildirim deyim, varsayılan uzunluğu ise 1.Zaman n cast ve convert işlevlerini kullanırken, varsayılan uzunluğu ise 30 belirtilmemiş.

Nesneleri kullanan char veya varchar collate yan tümcekullanarak belirli bir harmanlama atanan sürece veritabanının varsayılan harmanlama atanır.Karakter verileri depolamak için kullanılan kod sayfası harmanlama denetler.

Birden çok dili destekleyen bir siteniz varsa, Unicode kullanmayı nchar veya nvarchar veri türlerine en aza karakter dönüştürme sorunları.Kullanırsanız, char veya varchar, aşağıdakileri uygulamanızı öneririz:

  • Use char ne zaman sütun veri girişleri boyutları tutarlı.

  • Use varchar ne zaman sütun veri girişleri boyutları değişir epeyce.

  • Use varchar(max) sütun veri girişleri boyutlarını önemli ölçüde, farklılık gösterir ve boyutu aşan 8.000 bayt.

create table veya alter table yürütüldüğünde, set ANSI_PADDING off ise bir char sütun null olarak gerçekleştirilir olarak tanımlanan varchar.

harmanlamakod sayfası çift baytlı karakterler kullandığında, depolama boyutu hala olan n bayt. Bir karakter dizedepolama boyutunu bağlı n bayt olabilir daha az n karakter.

Örnekler

A.Varsayılan değeri değişken bildirimkullanıldığında n gösteriliyor.

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

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 ve convert ile kullanıldığında, varsayılan değer n gösteriliyor.

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

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';