ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

カラムの順番を考えていなくて発生したエラー

順番のことを忘れていました。
f:id:AJYA:20140602053633j:plain
photo credit: wetribe via photopin cc

以前テーブルからテーブルへコピーする方法を書きました。

SQL Server:テーブルからテーブルへ、データをコピーする方法 - ソフトウェア開発者の日常

同様にコピーするように書いて正常に動作していました。
SQLは以下のようになっていました。

INSERT tablea SELECT *, 0 as flg1, 0 as flg2 FROM tableb

コピー元にカラムを追加したので、コピー先にもカラムを追加しましたが、エラーが発生してしましました。
エラーの内容は、型が合っていないというエラーです。

カラムの順番が違っている

テーブルの定義を見ても、追加したカラムは、コピー元とコピー先では同じ名前と型です。
なぜ同じなのにと考えていて、定義よくよく見たら、コピー先ではflg2カラムの後にカラムを追加していました。
カラムをflg1の前に追加して試したところ、正常に動作するようになりました。


コピー元とコピー先で、勝手にカラムを合わせてはくれないので、順番を考えていなかったのがエラーの原因でした。