0

我正在尝试从一个数据库中获取所有额外数据并尝试插入另一个数据库。但我想省略列名,并试图只将表名设为硬编码来实现这一点。但是我们有一些字段是系统在表中生成的,例如 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 部分,因为查询很大。

4

1 回答 1

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 具有不同的列数或类型,这是不可能的,因为它会产生错误。

于 2012-10-25T10:43:28.937 回答