Я отчаянно пытается создать финальный стол для производства envirnment, однако Im возникли некоторые проблемы ....заявление Sql Update выдает
У меня есть 2 таблицы в моей базе данных. MyTable имеет тот же формат, что и другой (AnotherTable). AnotherTable имеет последнее значение, которое я хотел бы быть в MyTable.
Я пытаюсь обновить значение gq MyTable, чтобы оно было равно значению в значении gq другого значения. Я больше не могу использовать AnotherTable в производстве, потому что это архивные данные ...
Таким образом, моя забота. Я написал инструкцию обновления (ниже), которая пытается это сделать. Проблема в том, что я не хочу обновлять каждую строку MyTable каждый раз, когда вызывается это обновление. Мое предложение 2nd where бросает ошибку «множественный идентификатор не может быть связано». Тем не менее, мне нужно иметь предложение 2nd where, чтобы убедиться, что я не обновляю всю информацию о базе данных сразу.
Пожалуйста, помогите! Я до сих пор чувствую себя как NEWB
UPDATE MyTable
SET MyTable.gq=
(select top 1 ANotherTable.GQ as gq
from AnotherTable , MyTable
WHERE CONVERT(VARCHAR(MAX), AnotherTable.UniqueTextField)= MyTable.uniqueVarCharField
)
WHERE CONVERT(VARCHAR(MAX), AnotherTable. UniqueTextField)
= MyTable.uniqueVarCharField
Почему это выберите больше строк, чем необходимо? И как я могу заставить его обновлять только те строки, которые я хочу? – rockit
Вы должны фильтровать строки, которые хотите обновить, а не все соответствующие строки. Пример: есть ли в таблицах общий ключ? – gbn