【发布时间】:2016-02-01 23:23:57
【问题描述】:
我有一个程序,在某些时候会复制从tableA + 一些字段到tableB 的行,如下所示:
INSERT INTO tableB
SELECT a.*, 'field1', 'field2'
FROM tableA a
WHERE a.id = myId
当我不得不向tableA 添加一个新列时,问题就来了。如果我将该列添加到tableA,它将作为最后一列添加,使此过程无效导致列数不匹配。为了使这个脚本有意义,我应该将新列从tableA 添加到tableB。我可以手动编写所有的列,但是有很多列,我正在寻找更易于维护的东西
有没有办法将新列添加到tableB 的特定位置?如果不可能,有没有办法从tableA 中选择除新列之外的每一列(所以我可以选择它作为tableB 的最后一列)?如果没有,我该如何自动化列顺序选择/插入?
谢谢
【问题讨论】:
-
请添加带有此问题的表格脚本。
-
据我所知,SQL 中没有任何方法可以让您选择除指定列之外的每一列。考虑使用事件触发器在
tableB中自动创建一个列。如果您希望手动完成维护工作,请生成一次tableA列列表并将它们放入您的过程处理中,当对tableA的结构进行一些更改时,将新列添加到tableB -
@Md.ShamimAlMamun 对不起,这是工作代码,我无法添加表定义。表格脚本的某些特定部分有用吗?
-
键入列是可维护的。你只需要做一次,对吧?