我定义了一个游标,不知道怎么搞得,调试的时候,总是说我定义的是一个只读的游标,但是我确实没有定义它是READ ONLY啊!
大家看看,定义有什么问题::DECLARE CursorOne CURSOR SCROLL
FOR SELECT Num,SimiFROM Table1
ORDER BY Num
FOR UPDATE OF Simi然后在后面的程序中用:
UPDATE Table1
SET Simi = @VALUE
WHERE CURRENT OF Simi其他的程序都没有问题,问题就是说我定义的游标是一个READ ONLY 不能修改!!
有什么解决办法?????修改方法??给点意见吧!!
大家看看,定义有什么问题::DECLARE CursorOne CURSOR SCROLL
FOR SELECT Num,SimiFROM Table1
ORDER BY Num
FOR UPDATE OF Simi然后在后面的程序中用:
UPDATE Table1
SET Simi = @VALUE
WHERE CURRENT OF Simi其他的程序都没有问题,问题就是说我定义的游标是一个READ ONLY 不能修改!!
有什么解决办法?????修改方法??给点意见吧!!
FOR SELECT Num,Simi
FROM Table1
--ORDER BY Num ---** 去掉order by ,有order by的是只读游标
FOR UPDATE OF Simi
declare @t table(id int,name char(10))
insert @t select 1,'aa'
union all select 2,'bb'
union all select 3,'cc'print '----------------------------------'
print '------ 原表内容 --------'
select * from @t--用游标删除数据
declare mycur cursor --scroll
for
select * from @topen mycurprint '----------------------------------'
print '------ 被删除的内容 --------'
fetch next from mycur
delete @t where current of mycur
close mycur
deallocate mycurprint '----------------------------------'
print '------ 处理后的内容 --------'
select * from @t/*--测试结果
----------------------------------
------ 原表内容 --------
id name
----------- ----------
1 aa
2 bb
3 cc (所影响的行数为 3 行)----------------------------------
------ 被删除的内容 --------
id name
----------- ----------
1 aa (所影响的行数为 1 行)
----------------------------------
------ 处理后的内容 --------
id name
----------- ----------
2 bb
3 cc (所影响的行数为 2 行)
--*/