少しはまったのでメモ
SQLServerで、型がvarchar(2)で、そこに2桁の数字や特定の文字を入れるようにしていた。
そこに、何も考えずテストで加算して代入を繰り返していると、「アスタリスク(*)はint型に変換できません。」旨のエラーがでるようになった。
特定の文字が入ることは想定していたが何故アスタリスク?と疑問に思ってデータをみてみたら、数字と特定の文字しか入らないはずのレコードに*(アスタリスク)が入力されていた。
調べてみると、以下の文面をみつけた。
整数を暗黙的に文字データ型に変換するとき、整数が大きすぎて文字型フィールドに格納できない場合、ASCII 文字コード 42 のアスタリスク (*) が SQL Server によって入力されます。
引用先:http://technet.microsoft.com/ja-jp/library/ms191530%28v=sql.105%29.aspx
エラーでなく、勝手に文字が変えられていたとわ・・・。