我有两个相同的表A和B.在这个意义上它们都具有相同类型的具有相同名称和数据类型的列。
A有100列,B有101列。
只有它们之间的区别是B有一个额外的列。
现在我正在尝试插入从A到B的列。
如果两个表具有相同的列数,则可以使用以下insert语句。
insert into B
select * from A;
由于两个表的列数不同,我必须在insert语句中写下所有列名。
insert into B (col1,........col100)
select col1....col100 from A;
现在我的问题是..有没有办法我们可以用更简单的方式编写语句,如下所示,以便可以保存代码中的时间和行数。
insert into B (exclude column 101)
select * from A;
答案 0 :(得分:2)
如果b的最后一列是与列不同的列,并且a和b列的顺序相同,b的最后一列可以为null:
INSERT INTO b SELECT *,NULL FROM a;
如果没有,请输入任何有效值而不是NULL。
答案 1 :(得分:1)
由于这是标记的sql-server,我猜你正在使用SSMS编写查询..正确设置你的选项...见下图。
然后切换到文本输出模式(CTRL-T)
SELECT * FROM TABLENAME WHERE 1=2
从此处复制并粘贴csv列列表...并根据需要混合并匹配列的顺序。
答案 2 :(得分:0)