現在、テーブルAからテーブルBに3つの列を移動する必要があります。既存のデータを新しい列にコピーするには、update joinテーブルスクリプトを使用しています。その後、テーブルAの古い列がドロップされます。結合テーブルを使用したSQL更新レコード
Alter table NewB add columnA integer
Alter table NewB add columnB integer
Update NewB
Set NewB.columnA = OldA.columnA, NewB.columnB = OldA.columnB
From NewB
Join OldA on NewB.ID = OldA.ID
Alter table OldA drop column columnA
Alter table OldA drop column columnB
これらのスクリプトでは、新しい列が追加され、既存のデータが新しく作成された列に更新されます。その後、古い列を削除します。
しかし、システムの構造上、データベースを最新にするためにSQLスクリプトを複数回実行する必要があります。
私はIf (Columns Exist) Begin (Alter Add, Update, Alter Drop) End
でしたが、必要な列の存在を確認しました。しかし、次回にスクリプトを実行すると、「更新」クエリで古いテーブルから列が見つからないというエラーが表示されます。スクリプトが最初に実行されたときに列が削除されたためです。
他の解決方法はありますか?