0

カーソルを使用してヌル列を更新していますが、更新されていません

Declare @Itemcode as varchar(30)
Declare @SLV as varchar(20)
declare cursor1 cursor for 
Select Itemcode ,U_SLV from  oitm_Clone where sapitem is null and u_slv is null
open cursor1 
  fetch next FROM cursor1 INTO @Itemcode ,@SLV
   WHILE @@FETCH_STATUS = 0
   begin
   if @SLV is null
   begin
   declare @sql1 as varchar(max)        
          set @sql1 = 'Update [dbo].oitm_Clone set sapitem ='''+ @Itemcode +''' where ItemCode='''+ @Itemcode +''' and U_SLV ='''+ @SLV +''''
          print @sql1
          execute (@sql1)
   end
    FETCH NEXT FROM cursor1 INTO @Itemcode ,@SLV
   end
    CLOSE cursor1
DEALLOCATE cursor1
4

2 に答える 2

1

この更新を行うためにカーソルは必要ないと思います。パフォーマンスが大幅に向上したカーソルと同じロジックを持つこの簡単な更新を試してください。

Update [dbo].oitm_Clone 
Set sapitem = itemcode
Where sapitem is null and u_slv is null
于 2013-09-16T12:01:55.353 に答える
0

これを使ってみてください

WHILE @@FETCH_STATUS <> -1 

それ以外の

WHILE @@FETCH_STATUS = 0 

それがあなたを助けることを願っています

よろしく

于 2013-09-16T11:58:53.863 に答える