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

时间:2013-07-05 09:33:27

标签: c# sql sql-server sql-server-2008

我将以下记录从excel导入数据库。记录数为5,00,000。

EmpId Name City CityId

1 Ramesh LA ?

2 Kumar NewYork ?

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

另一个表有city的别名和cityId

CityId AliasName

1 LA

1 LosAngels

1 Los Angels

1 LA(USA)

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

我需要从别名表中为每位员工更新CityId字段

4 个答案:

答案 0 :(得分:1)

你可以这样做:

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

答案 1 :(得分:0)

希望这可以帮助你。

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

答案 2 :(得分:0)

City设置为外键而不是添加冗余数据列会不会更容易。

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

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

答案 3 :(得分:0)

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

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