SQLServerで数字がアスタリスク(*)にされる

少しはまったのでメモ

SQLServerで、型がvarchar(2)で、そこに2桁の数字や特定の文字を入れるようにしていた。
そこに、何も考えずテストで加算して代入を繰り返していると、「アスタリスク(*)はint型に変換できません。」旨のエラーがでるようになった。

特定の文字が入ることは想定していたが何故アスタリスク?と疑問に思ってデータをみてみたら、数字と特定の文字しか入らないはずのレコードに*(アスタリスク)が入力されていた。

調べてみると、以下の文面をみつけた。

整数を暗黙的に文字データ型に変換するとき、整数が大きすぎて文字型フィールドに格納できない場合、ASCII 文字コード 42 のアスタリスク (*) が SQL Server によって入力されます。

引用先:http://technet.microsoft.com/ja-jp/library/ms191530%28v=sql.105%29.aspx

エラーでなく、勝手に文字が変えられていたとわ・・・。

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>