SQL SEVERのInsert文について


へなちょこ  2003-11-18 17:27:12  No: 80469  IP: [192.*.*.*]

SQL SEVER7.0です。

レポート出力用に一時的なテーブルを
kingaku decimal(7.2)
で作ります。

その後にInsert文です。
Insert Into TestTable (
kingaku
)
Select kingaku From Furiage

という文を書いて登録しようしたところnumericからnumericのオバーフロー
のエラーがでました。
この時に抽出した金額は4.50です。
Furiageには、
kingaku decimal(8,2)
で登録してあります。

確かに、Furiageの方が項目のサイズは大きいのですが
数値自体は、4.50でしかありません。
なぜ、オーバーフローが起きるのでしょうか?
このAPは、かなり前にリリースしており、
つい最近このエラーが出るようになりました。

とりあえずは、一時的なテーブルのサイズを大きくしました。
それで、大丈夫になりました。

しかし、なぜこの頃になって出るようになったのか?
サイズが4.50程度でオーバーフローになるのでしょうか?

編集 削除
とろ  2003-11-19 09:54:57  No: 80470  IP: [192.*.*.*]

私の環境が SQL Server 2000 だからかも知れませんが、
エラーは発生しませんでした。
参考になるかどうか分かりませんが、
下のクエリを1つずつ実行した場合もエラーは発生しますか?

create table TABLE_7_2 ( FIELD1 decimal(7, 2) )
create table TABLE_8_2 ( FIELD1 decimal(8, 2) )
insert into TABLE_8_2 values (4.50)
insert into TABLE_7_2 select * from TABLE_8_2

編集 削除
へなちょこ  2003-11-19 10:04:08  No: 80471  IP: [192.*.*.*]

返信ありがとうございます。
上記の文でエラーはでませんでした。
それでは、いったい何に原因があるのでしょうか?

編集 削除
超初心者  2003-12-26 16:50:15  No: 80472  IP: [192.*.*.*]

vb6を使っています。初めて使いました。
オーバーフローしましたってエラーが出たんですが、理由がわかりません。
そもそもオーバーフローって何が原因で起こるのですか?
オーバーフローしましたって出てきたら何をチェックすればいいですか?
教えてください。お願いします。

編集 削除
へなちょこ  2004-01-07 10:56:42  No: 80473  IP: [192.*.*.*]

超初心者さんへ
Insert文とか出オーバーフローが出たのなら、
Insert Into (
a,b,c,d,e,f
) Values (
1,2,3,4,5
)
だとして、後ろからfと5をInsert文から外して実行してみてください。
それを、先頭までくりあけしたら、どこかでエラーがなくなりますので
無くなったところでオーバーフローしているのでは?
オーバーフローは、char(2)の項目にchar(20)を入れようとしたときとか、
お互いの型が違うときとかにでますよ

編集 削除