その列のデータ型によって異なります。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 であるとは限らないため、照合に依存するため、これらの関数には注意してください。LENDATALENGTH
これはそのためのデモです。自分で試すことができます。