鉴于以下内容(表1):
Id Field1 Field2 ... -- ------ ------- NULL 1 2 NULL 3 4 ...
我想将Field1和Field2的值插入到另一个表(Table2)中。表2具有自动递增整数主键。我想从Table2中检索新的PK,并更新上面的ID列(表1)。
我意识到这不是传统的做法-这不是我需要定期执行的工作,只是一次性完成一些迁移工作。我使用进行了一些尝试INSERT INTO, OUTPUT, INSERTED.Id,但失败了。“回送”到表1中的PK必须与插入的Field1 / Filed2的值相关。
INSERT INTO, OUTPUT, INSERTED.Id
您应该只能够插入,然后删除并重新插入。
create table t1 ( id int, f1 int, f2 int); create table t2 ( id int primary key IDENTITY , f1 int, f2 int); insert into t1 (id, f1, f2) values (null, 1, 2); insert into t1 (id, f1, f2) values (null, 3, 4); insert into t1 (id, f1, f2) values (null, 5, 6); insert into t1 (id, f1, f2) values (null, 5, 6); insert into t2 (f1, f2) select f1, f2 from t1 where id is null; delete t1 from t1 join t2 on (t1.f1 = t2.f1 and t1.f2 = t2.f2); insert into t1 select id, f1, f2 from t2; select * from t1;
请参见SQLFiddle上的此示例。