Отметка на моем лбу от стены становится слишком красной, так проводками услышать ....SQL Обновление одной таблицы на основе значений в курсоре другой таблицы
У меня есть две таблицы, и нужно обновить значение один из которых основан на критериях отбора другого. Я знаю, что я могу использовать обновление с «где существует», но у меня есть много обновлений, которые нужно выполнить. Поэтому я пытаюсь использовать курсор, чтобы поместить значения из одной таблицы в vars, а затем использовать обновление в другой таблице с этими vars. Ошибок не возникает, но также нет обновлений. Когда я меняю код на оператор Select, он правильно показывает информацию, но обновление не работает. Я не уверен, основывается ли он на создании курсора, используя «для обновления», потому что обновляемая таблица НЕ является той же, на которую курсор выбирает записи. Ниже мой запрос. Кто-нибудь, пожалуйста, сообщите мне, что я могу делать неправильно. Благодаря!
DECLARE @so VARCHAR(50)
DECLARE @line VARCHAR(50)
DECLARE @pdate DATETIME
DECLARE @reason1 VARCHAR(50)
DECLARE @reason2 VARCHAR(50)
DECLARE @area VARCHAR(50)
DECLARE mycursor CURSOR FOR
SELECT [bp_so_number],[bp_line],[bp_production_date],[bp_reason1],[bp_reason2],[bp_area]
FROM [Workflow].[dbo].[v_OTD_PostSrc]
OPEN mycursor
FETCH NEXT FROM mycursor
INTO @so, @line, @pdate, @reason1, @reason2, @area
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM mycursor
INTO @so, @line, @pdate, @reason1, @reason2, @area;
UPDATE otd_data SET [email protected], [email protected], [email protected]
WHERE [Order Number][email protected] AND [email protected] AND [Schedule Date][email protected] AND [Qty Open]>0
--SELECT * FROM otd_data WHERE [Order Number][email protected] AND [email protected] AND [Schedule Date][email protected]
END
CLOSE mycursor
DEALLOCATE mycursor
Как я уже говорил. Без ошибок, но и не обновляется таблица ... :-(
OK, Tha. Спасибо, спасибо! Мне также пришлось использовать DATEPART() в поле даты, потому что в @pdate он проходил как «14 мая 2012 года» – bdlcne
@bdlcne Добро пожаловать :-) –