使用游标批量更新数据

 -- 定义游标MyTestCursor:
declare  MyTestCursor cursor
for select id,updatetime from tb_topic
/*从表中选取两个字段*/
/* 表TBLPRICELISTGROUPITEM中的字段PGI_ITM_CODE是Unique Key  */

-- 打开游标MyTestCursor:
open MyTestCursor

declare @id int
declare @updatetime smalldatetime

--fetch取出游标所指的记录,并将记录结果存入到变量中:
fetch from MyTestCursor into @id,@updatetime


/*****************  begin of loop *******************************/
while @@FETCH_STATUS = 0
Begin
if(not @updatetime is null)
begin
update tb_topic set updatetime=(select max(createtime) from tb_TopicSendInfo where TopicId=@id) where id=@id
end
else
begin
update tb_topic set updatetime=createtime where id=@id
end
fetch next from MyTestCursor into @id,@updatetime
End   
/*****************  end of loop *******************************/

--select  @PGI_ITM_CODE as code ,@PGI_ListPrice as price

/***********关闭游标,释放游标:***************/
close MyTestCursor
deallocate MyTestCursor

你可能感兴趣的:(使用游标批量更新数据)