我试图从一个数据库获取所有额外数据并尝试插入另一个数据库。 但我想省略列名称,并尝试只将表名作为硬编码来实现此目的。但是我们有一些字段是在像id这样的表中生成的系统,这不是必需的数据,但仍然会产生完整性问题。我怎么能插入只是想省略上面列的细节,省略的列的名称也会改变..我不能做一个完整的插入,只是添加一些额外的数据。
到目前为止,我已经到了这里。while 1=1
begin
if exists(select 1 from db1.table1 not in (select * from db2.table1)
begin
insert into db2.table1 (columns) select (columns) from db1.table1
end
if(rowCount=0)
break
end
请告知我如何优化它以获得尽可能少的硬编码 故意离开了pk部分,如 查询很大。
答案 0 :(得分:1)
如果你想要这样的话:
insert into TAB
select * from TAB2
或
insert into TAB
select col1,col2 from TAB2
或
insert into TAB (col1,col2)
select * from TAB2
其中TAB1和TAB2具有不同的列数或类型,这是不可能的,因为它会产生错误。