Я портирования базу данных доступа к SQL Server, и наткнулся на следующее:SQL Update с конкатенации
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.
я думаю, что это потому, что я не сделал сделайте ПРИСОЕДИНЕНИЕ. Однако меня не интересует [tableA].[FirstOfCOMPONENT NUMBER]
, меня интересует результат конкатенации. но как я могу сделать JOIN, чтобы привести таблицу в запрос правильно?
Спасибо! Я снова загляну в стол, чтобы убедиться, но я беспокоюсь, что у них нет общей колонки. –
Обновление: я нашел один, хотя он может и не быть правильным. Посмотрим! Спасибо, Сонам. Я правильно ответил на ваш ответ. –