その列のデータ型によって異なります。SQL Server には、通常と Unicode の 2 種類の文字データ型があります。CHAR
およびである通常のデータ型VARCHAR
。NCHAR
や などの Unicode データ型NVARCHAR
。通常の文字の場合、SQL Server は文字ごとに 1 バイトのストレージを使用しますが、Unicode 文字NVARCHAR
は文字ごとに 2 バイトを使用します。
DATALEGNTH
またはLEN
次のように使用して、文字列で使用されるバイト数を取得することもできます。
SELECT DATALENGTH(inputstring);
後で説明したように、これinputstring
が型である場合、NVARCHAR
またはN'string'
DATALENGTH
バイト数が得られます。は文字列の文字数LEN
を示しますが、その長さは必ずしもバイト数ではありません。
と のもう 1 つの違いは、 は末尾の空白を除外し、 は除外しないことに注意LEN
してDATALENGTH
ください。また、以下の @MartinSmith コメントで指摘されているように、 Varchar = single byte が常に true であるとは限らないため、照合に依存するため、これらの関数には注意してください。LEN
DATALENGTH
これはそのためのデモです。自分で試すことができます。