首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问游标修改数据的有关问题

2012-03-01 
请教游标修改数据的问题数据有idsalequantity三列组成现在想把第三个数据的sale值修改成888declarexgscrol

请教游标修改数据的问题
数据有
id     sale     quantity
三列组成
现在想把第三个数据的sale   值修改成888
declare   xg     scroll   cursor   for
select   id,sale,quantity   from   table2
open   xg
declare   @id   int,@sale   money,@quantity   int
fetch   absolute   3   from   xg   into   @id,@sale,@quantity
if   @@fetch_status=0
begin
set   rowcount   1
update   table2   set   sale=888   WHERE   id=@id   and   sale=@sale   and   quantity=@quantity
end

我认为这种方法不好,如果出现三项都完全重复的行就会出现错误修改
请问能不能像指针一样定位到哪个数据就修改哪个数据?多谢各位

[解决办法]
如果表没有主键而且有可能存在三项数据都重复的情况,那就用临时表加一个主键,再来更新
[解决办法]
请自己修改,我用了本机的表作测试
declare xg cursor scroll dynamic scroll_locks for
select id,name from tb
open xg
declare @id int
set @id=1
fetch next from xg
while @@fetch_status=0
begin
if @id=2
DELETE FROM tb WHERE CURRENT OF xg
set @id=@id+1
fetch next from xg
end
close xg
deallocate xg

热点排行