我正在将 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 带入查询?