varchar
from SQL Serverの文字列型varchar nvarchar
char(n) varchar(n|max)
概要
SQL Server 2019(15.x)以降
UTF-8が有効になっている照合順序を使用する場合
Unicode文字データの全範囲が格納され、UTF-8文字エンコードが使用される
UTF-8が無効の照合順序を指定する場合
対応するその照合順序のコードページでサポートされている文字のサブセットが格納される
引数
char
1から8000までのn
1バイトエンコード文字セット
ストレージのサイズはnバイト、格納できる文字数もn
マルチバイトエンコード文字セット
ストレージのサイズはnバイト、格納できる文字数がnよりも少なくなる場合がある
varchar
1から8000までのn
max: 列の制約サイズが最大ストレージである2^31-1バイト(2GB)
1バイトエンコード文字セット
ストレージのサイズはnバイト + 2バイト、格納できる文字数もn
マルチバイトエンコード文字セット
ストレージのサイズはnバイト + 2バイト、格納できる文字数がnよりも少なくなる場合がある
+2ってどこから出てきたんだろう?
nは格納できる文字数ではない
1バイトエンコード文字の場合のみ、n = 文字数で同じになる
データ定義時にnを指定しない場合、既定の長さは1
CAST関数およびCONVERT関数でnを指定しない場合、既定の長さは30