MSSQL批量更新多表间关联数据(mssql更新关联表)

MSSQL批量更新多表间关联数据

MSSQL在开发过程中常常有需求来更新多表间关联数据,本文将介绍一种比较常采用的方案来实现MSSQL数据库中多表间批量数据更新操作。

首先我们将创建一组用于存放数据的表,比如:

~~~sql

create table Table_A(

ID int,

Name varchar(20),

Country varchar(20),

CreateTime datetime

)

create table Table_B(

ID int,

Score int,

Name varchar(20),

Country varchar(20)

)

~~~

这两张表中共同有`Name`,`Country`字段,说明存在数据相关性,我们现在要完成的操作是更新`Table_B`的`Score`字段,根据`Table_A`的`CreateTime`字段。

这里我们通过MSSQL`UPDATE`语句来实现:

~~~sql

update Table_B

set Score=t.Score

from Table_B b

inner join (select sum(Score) as Score,Name,Country from Table_A

group by Name,Country,CreateTime) as t

on b.Name = t.Name and b.Country=t.Country

~~~

这条语句利用内连接,将`Table_B`与`Table_A`关联,`Table_A`中`Score`字段按`Name`,`Country`字段Group by 进行合计,最后更新`Table_B`中的`Score`字段。经过这条语句后,`Table_B`的中`Score`字段将已经更新完毕。

上述的例子中,我们使用的是内连接的方式,只关联了`Table_B`与`Table_A`,实际应用中,如果有多表存在关联,也可以采用类似的思路进行操作。

总的来说,MSSQL的更新操作很方便,如果批量更新多表间关联数据,我们可以采用上文提到的SELECT-UPDATE-JOIN语句进行按需处理。


数据运维技术 » MSSQL批量更新多表间关联数据(mssql更新关联表)