3 つのテーブルがあり、そのうちの 2 つは一時テーブルです。一方には更新する古い値があり、もう一方には新しい値があります。
最初のテーブルには と の列が含まれTelephone
、ID
他の 2 つのテーブルには 1 つの列のみが含まれます。telephones
例
表TelephonesOrganization
:
ID Telephone
1 1234
1 4567
1 5678
表TelephonesToUpdate
:
Telephone
1234
4567
表TelephonesNewValues
:
9999
9999
で更新する値はTelephonesToUpdate
、 の同じ行に直接対応しますTelephonesNewValues
。たとえば、1234 は値 9999 を取り、ID も変数です。この場合は 1 です。
UPDATE
Where で and を使用して、 と id を比較しようとしましたTelephones
が、何らかの理由でエントリが重複しています。
Declare @ID int
Set @ID = 1
UPDATE A
SET A.Telephone = 12345 FROM TelephoneOrg A, @TempOLDTelephones B , @TempNEWTelephones C
WHERE A.Telephone = B.Telephone and A.ID = @ID
ご回答ありがとうございます。
ダンテ。