CHARとVARCHARの違い
SQL ServerでCHARとVARCHARがあります。CHAR列は8バイトの場合、1バイトのデータを入れると残り7バイトは空白が入ります。
VARCHARの場合は、8バイトの場合に1バイトのデータを入れると空白は入れられずに1バイトデータとなります。
VARCHARの値~~の変換がint型の列でオーバーフローしました。整数値の最大値を超えました。
char(10)のカラムに対してシングルクォーテーションをつけずにSQL発行します。
SELECT *
FROM T_SYUKKA
WHERE SYUKKA_NO = 1234567890
このSQLを発行するとエラーとなります。これはint型の10桁のため、最大値を越えてしまったから発生するエラーです。
このような場合はシングルクォーテーションで囲む必要があります。
もし、SYUKKA_NOがCHAR(3)だとしたら上記のSQLを発行してもエラーとなりません。これは3桁なのでそもそもオーバーフローにならないようです。
VARCHAR(-1)
VARCHAR(-1)は、VARCHAR(max)と同じです。ツールによって表示の仕方が違うようです。