Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 更新多个记录以使其他记录相等_Sql_Sql Server 2005_Sql Update - Fatal编程技术网

Sql 更新多个记录以使其他记录相等

Sql 更新多个记录以使其他记录相等,sql,sql-server-2005,sql-update,Sql,Sql Server 2005,Sql Update,我有一个具有一对多关系的大型数据库。它适用于许多不同站点的计算机系统。对于每个计算机系统,需要为自动消息设置不同的电子邮件地址,这些地址存储在数据库中。对于许多这样的计算机,我需要使两个或更多的记录相同。我想写一个查询(在SQLServer2005中),它允许我一次更新/复制所有记录 例如: dbo.email table; system 1 emaila = x; system 1 emailb = y; system 2 emaila = z; system 2 emailb = a

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

例如:

dbo.email table; 
system 1 emaila = x; 
system 1 emailb = y; 
system 2 emaila = z; 
system 2 emailb = aa; 
我需要system 1 emailb=system 1 emaila,我需要system 2 emailb=system 2 emailb

使用一个查询是否可以做到这一点


谢谢

这是你想要的吗

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

@安德里姆。这似乎是个好主意。OP只需要小心空值。我会测试并与您联系。