0

更新クエリで実際に助けを借りることができます...(SQL Serer 2008 R2 Express) 2 つのテーブルがtblJPあり、tblMaster.

2 つのテーブル間で一致する文字列フィールドしかありません。

tblJP AND tblMaster

いつ更新する必要がありますtblJP.LangStringtblMaster.Long_text

tblJP.short_text = tblMaster.short_text AND tblMaster.Lang = 'jp'

どんな助けでも大歓迎です。私は、一時テーブルの作成から他のタイプの結合まで、あらゆる種類のロジックと構文をすべて試してみて、うまくいきませんでした。

4

2 に答える 2

6

を使用した簡単な更新でINNER JOINうまくいくはずです。

UPDATE     tblJP
SET        tblJP.LangString = tblMaster.Long_Text
FROM       tblJP
INNER JOIN tblMaster ON tblMaster.alt_text = tblJP.short_text
WHERE      tblMaster.Lang = 'jp'

警告:最初に開発サーバーに対してテストを行わずに、運用サーバーに対して update ステートメントを実行しないでください。特に、他の誰かが SQL を記述した場合はそうです。

于 2011-10-21T15:49:55.257 に答える
1

使用することもできますMERGE

MERGE INTO tblJP
USING (SELECT *
       FROM   tblMaster
       WHERE  Lang = 'jp') AS SOURCE
ON SOURCE.alt_text = tblJP.short_text
WHEN MATCHED THEN
  UPDATE SET LangString = SOURCE.Long_Text;  

が複数の行を返す場合JOIN、エラーで問題が警告されます。The MERGE statement attempted to UPDATE or DELETE the same row more than once.

于 2011-10-21T16:11:39.627 に答える