目前我需要将表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
以确保所需列的存在。但是当脚本在下次运行时,它会出现错误,表示在“更新”查询中没有从旧表中找到列。因为第一次运行脚本时列已被删除。
还有其他方法可以解决吗?