更新多个记录以等于其他记录

时间:2014-07-10 14:59:57

标签: sql sql-server-2005 sql-update

我有一个包含一对多关系的大型数据库。它适用于许多不同站点的计算机系统。对于每个计算机系统,需要为自动消息设置不同的电子邮件地址,这些地址存储在数据库中。对于许多这些计算机,我需要使两个或更多的记录相同。我想编写一个查询(在SQL Server 2005中),这将允许我一次更新/复制所有记录。

例如:

dbo.email table; 
system 1 emaila = x; 
system 1 emailb = y; 
system 2 emaila = z; 
system 2 emailb = aa; 

我需要系统1 emailb = system 1 emaila,我需要系统2 emailb = system 2 emailb。

这可以使用一个查询吗?

谢谢

1 个答案:

答案 0 :(得分:2)

这样做你想要的吗?

with toupdate as (
      select et.*,
             min(email) over (partition by system) as an_email
      from emailtable et
     )
update toupdate
    set email = an_email;