このクエリの出力が異なる理由
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
出力:
4,30
このクエリの出力が異なる理由
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
出力:
4,30
VarCharは、渡される文字列の長さに常に調整されます。したがって、出力は4です。
CHARのデフォルトの長さは30であるため、出力は30です。
「CASTおよびCONVERT関数を使用するときにnが指定されていない場合、デフォルトの長さは30です」。ただし、DataLengthがvarcharフィールドに適用されると、末尾のスペースは無視されますが、charフィールドの場合、長さはフィールド自体のサイズになります。