Sql Update
今天被一个问题给弄蒙了,事情是这样的,一个表A里的数据在以后某个环节下需要将某些数据插入到新的一个表B中,但是需要将插入B中的标识记录到表A里,如果是在程序里一条一条的做那么是没问题的,现在是有一个自动导入程序自动运行导入,那么在将A表中的数据根据某些条件导入到B表中后,如果将插入B中的标识记录到A表里呢?随即脱口而出:不可能!除非用游标实现,回来想想觉得自己太过草率了,(Nothing is impossible!),以前貌似也是这么用过的,时间长了记不得了,下面将自己测试的例子记录一下,以便查阅。
创建表
create table A
(
id int identity(1,1) primary key,
[Name] varchar(20)
)
create table B
(
id int identity(1,1) primary key,
Aid int,
[Name] varchar(20)
)
--方法一
update B set Aid= (select id from A where A.Name=B.Name)
--方法二
update B set Aid=A.id from A,B where A.Name=B.Name
update B set B.Aid=A.id from B inner join A
on B.Name = A.Name
---------------------------------over 2009-09-10----------------------------------------------------