使用存储过程更新更多记录
本文关键字:记录 更新 存储过程 | 更新日期: 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)