使用新列将备份表复制到类似的表中

时间:2014-05-10 23:23:04

标签: sql

将数据从备份表复制到生产表就像......一样简单。

INSERT INTO TBL_A 
SELECT * FROM TBL_A_BK

但是,如果我在备份后向TBL_A添加新列,我现在必须指定INSERT语句和SELECT语句中的每一列。我表中的列越多,这就越令人沮丧,似乎应该有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

不,没有更简单的方法。正确的方法是写:

 INSERT INTO TBL_A (col1, col2, ... colX)
   SELECT colA, colB, ... colZ FROM TBL_B

任何其他方法都很脆弱 - 当一个表的列数多于另一个表,或者列的顺序不同时,应该发生什么并不明显。

也就是说,您可以轻松地使用某种应用程序语言编写代码,该语言为元数据中的每个表构建有序列列表,并为您即时创建SQL。

此外,有些语言(我想到一个名为R:Base的晦涩难懂的语言,有可能是其他语言)还有其他语句(在R:Base it' APPEND中)通过匹配列名来INSERT ,留下其他人。