Access データベースを SQL Server に移植していて、次のことに遭遇しました。
UPDATE
[tableA],
[tableB],
[tableC]
SET [tableC].STATION_NB = [tableB]!Station
WHERE ((([tableA]![FirstOfCOMPONENT NUMBER] & [tableB]![COMPONENT NUMBER]) Like [tableC]![MOTOR_AND_PART])
AND (([tableC]![PART]) Like [tableB]![COMPONENT NUMBER]));
有罪を保護するために、テーブルの名前が変更されました。これは、すべてのモーターの組み合わせ、固有の部品、および部品がモーターに取り付けられたステーション番号の固有のリストを作成するために作成されたようです。もちろん、これは T-SQL コードではまったく問題ないので、移行のために修正する試みを次に示します。
UPDATE [tableC]
SET [tableC].[STATION_NB] =
(SELECT b.Station
FROM [tableB] b
WHERE ((([tableA].[FirstOfCOMPONENT NUMBER] + b.[COMPONENT NUMBER]) Like [tableC].[MOTOR_AND_PART])
AND (([tableC].[PART]) Like b.[COMPONENT NUMBER])))
それを実行すると、SSMS は、The multi-part identifier "tableA.FirstOfCOMPONENT NUMBER" could not be bound.
これは JOIN を実行しなかったためだと思われると不平を言います。ただし、 には興味がありません[tableA].[FirstOfCOMPONENT NUMBER]
。連結結果に興味があります。しかし、どのように JOIN を実行して tableA をクエリに適切に取り込むことができますか?