Обновление с курсором в SQL Server 2008 R2

Я хочу обновить столбец в конкретной таблице с именем Employeekopie1 .

Я пытаюсь обновить столбец FK_Profiel (значения имеют тип int )

Значения, которые я пытаюсь ввести в столбец FK_Profiel - значения, которые я получаю от курсора. Курсор получает значения из столбца в другой таблице, используя объединения для получения правильных значений.

Результат используемого запроса выбора возвращает несколько строк с разными значениями.

Первый результат запроса выбора - 114 , что правильно. Проблема в том, что это значение назначается всем полям в столбце FK_Profiel , что не является моим намерением.

Я хочу назначить все значения из запроса выбора.

Код следующий. следующим образом:

DECLARE @l_profiel int;
DECLARE c1 CURSOR  
FOR select p.ProfielID 
from DIM_Profiel p,DIM_EmployeeKopie1 e1,employee e
where e1.EmpidOrigineel = e.emplid and e.profile_code = p.Prof_Code
for update of e1.FK_Profiel;
open c1;
FETCH NEXT FROM c1 into @l_profiel
WHILE @@FETCH_STATUS = 0
BEGIN
SET NOCOUNT ON;
        UPDATE DIM_EmployeeKopie1
        set FK_Profiel = @l_profiel
        where current of c1

end

close c1;
deallocate c1;

Пожалуйста, помогите, спасибо.

5
задан marc_s 20 April 2011 в 15:22
поделиться