目前我需要將表A中的三列移動到表B,並且我使用更新連接表腳本將現有數據複製到新列。之後,表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
以確保所需列的存在。但是當腳本在下次運行時,它會出現錯誤,表示在「更新」查詢中沒有從舊錶中找到列。因爲第一次運行腳本時列已被刪除。
還有其他方法可以解決嗎?