カラムの順番を考えていなくて発生したエラー
順番のことを忘れていました。
photo credit: wetribe via photopin cc
以前テーブルからテーブルへコピーする方法を書きました。
SQL Server:テーブルからテーブルへ、データをコピーする方法 - ソフトウェア開発者の日常
同様にコピーするように書いて正常に動作していました。
SQLは以下のようになっていました。
INSERT tablea SELECT *, 0 as flg1, 0 as flg2 FROM tableb
コピー元にカラムを追加したので、コピー先にもカラムを追加しましたが、エラーが発生してしましました。
エラーの内容は、型が合っていないというエラーです。
カラムの順番が違っている
テーブルの定義を見ても、追加したカラムは、コピー元とコピー先では同じ名前と型です。なぜ同じなのにと考えていて、定義よくよく見たら、コピー先ではflg2カラムの後にカラムを追加していました。
カラムをflg1の前に追加して試したところ、正常に動作するようになりました。
コピー元とコピー先で、勝手にカラムを合わせてはくれないので、順番を考えていなかったのがエラーの原因でした。