Aktualisieren Sie mehr datasätze mit gespeicherter Prozedur

Ich habe die folgenden datasätze importiert aus Excel in die database. Die Rekordzahl beträgt 5,00.000.

Name City CityId

1 Ramesh LA ?

2 Kumar NewYork ?

Ich muss die CityId aus dem anderen Tisch holen und in diese CityId

Der andere Tisch hat den Aliasnamen für die Städte und die Stadt

CityId AliasName

1 LA

1 LosAngels

1 Los Angels

1 LA(USA)

Ich möchte eine gespeicherte Prozedur aufrufen, um alle 500000 datasätze zu aktualisieren, da functionen nicht für UPDATING datasatz verwendet werden können.

Ich brauche das CityId-Feld, das für jeden Mitarbeiter von Alias ​​Table aktualisiert werden soll

Du kannst so etwas machen:

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

Hoffe das hilft dir raus.

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

Wäre es nicht einfacher, die City als Fremdschlüssel zu setzen, anstatt eine redundante dataspalte hinzuzufügen.

Um Ihre Frage zu beantworten, können Sie dies erreichen, indem Sie die folgende Abfrage ausführen. Sie können dies auch in eine gespeicherte Prozedur machen, wenn es gelegentlich laufen muss.

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

Die folgende Abfrage aktualisiert die erforderlichen data:

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