使用存储过程更新更多记录

本文关键字:记录 更新 存储过程 | 更新日期: 2023-09-27 18:21:04

我将以下记录从excel导入数据库。记录数量为500000。

EmpId Name City CityId

1 Ramesh LA ?

2 Kumar NewYork ?

我需要从其他表中获取CityId,并将其插入此CityId

另一个表有城市的别名和cityId

CityId AliasName

1 LA

1 LosAngels

1 Los Angels

1 LA(USA)

我想调用一个存储过程来更新所有500000条记录,因为函数不能用于更新记录。

我需要为Alias表中的每个员工更新CityId字段

使用存储过程更新更多记录

您可以执行以下操作:

     update employee
     set cityid = b.cityid
     from employee as a inner join city as b on a.city = b.aliasname

希望这能帮到你。

UPDATE UserDetails
SET UserDetails.CityID = City.ID
FROM City
WHERE City.AliasName = UserDetails.City

City设置为外键是否比添加冗余数据列更容易。

要回答您的问题,您可以通过运行以下查询来实现。如果需要偶尔运行,也可以将其制作成存储过程。

UPDATE Employees SET CityId = (Select CityId FROM Cities where AliasName = City)

以下查询将更新所需数据:

UPDATE Employees SET CityId = ISNULL((Select CityId FROM Cities where AliasName = City),0)