タグ

ブックマーク / bt.hatenadiary.jp (1)

  • NVARCHARの桁数の罠 - bt

    SQLServerにはVARCHARのユニコード対応版である、NVARCHARというデータ型があります。 このNVARCHAR型の桁数がなかなかの曲者なんです。 VARCHAR(10)には何文字格納できるか? こう聞かれれば「半角10文字、全角5文字」と答える人が多いのではないでしょうか。 おそらくVARCHAR(10)の10は半角文字数と認識されていると思います。 ではNVARCHAR(10)ではどうでしょうか? 正解は「半角10文字、全角10文字」です。 NVARCHARはユニコードを扱うので、全ての文字を同じバイトで格納します。 従って半角全角の区別はありません。 NVARCHAR(10)の10は半角全角の区別なく、単純に文字数です。 この差を意識せずにNVARCHAR(10)をVARCHAR(10)に変換しようとすると たちまち桁あふれエラーが発生してしまうので注意が必要です。

    NVARCHARの桁数の罠 - bt
  • 1