という特定のテーブルの列を更新したいと考えていますEmployeekopie1
。
更新しようとしている列はFK_Profiel
(値は type です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;
助けてください、thx。