sql 游标 报错 FOR UPDATE cannot be specified on a READ ONLY cursor

sff_666 2008-08-04 01:29:07
我用游标更新数据 报错
FOR UPDATE cannot be specified on a READ ONLY cursor??
---------------------------------------
Declare @TT VARCHAR(100),@Year int,@ii int
Declare cMain_cursor CURSOR FOR
select X from P_A
FOR UPDATE OF X
OPEN cMain_cursor
FETCH FROM cMain_cursor
INTO @TT ,@Year
SET @ii = 1
While @@FETCH_STATUS = 0
BEGIN
PRINT CAST(@II AS VARCHAR)+'----'+@TT
update P_BookLits set X = '1'
where CURRENT OF cMain_cursor
SET @ii = @ii + 1
FETCH NEXT FROM cMain_cursor
INTO @TT,@Year
END
CLOSE cMain_cursor
DEALLOCATE cMain_cursor


请高手指点??
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sff_666 2008-08-04
  • 打赏
  • 举报
回复
靠 我查了查 游标不支持分组更新 。
高手有没有 什么好办法呀?
对于分组更新 ?
linguojin11 2008-08-04
  • 打赏
  • 举报
回复
对数据库只有只读权限?
sff_666 2008-08-04
  • 打赏
  • 举报
回复
sorry !
语句是这样的
Declare @TT VARCHAR(100),@Year int,@ii int
Declare cMain_cursor CURSOR FOR
select X from P_A group by X ---------------------------------"有个分组!"
FOR UPDATE OF X
OPEN cMain_cursor
FETCH FROM cMain_cursor
INTO @TT ,@Year
SET @ii = 1
While @@FETCH_STATUS = 0
BEGIN
PRINT CAST(@II AS VARCHAR)+'----'+@TT
update P_BookLits set X = '1'
where CURRENT OF cMain_cursor
SET @ii = @ii + 1
FETCH NEXT FROM cMain_cursor
INTO @TT,@Year
END
CLOSE cMain_cursor
DEALLOCATE cMain_cursor
sff_666 2008-08-04
  • 打赏
  • 举报
回复
怎么改呀?是该数据库么?
fuda_1985 2008-08-04
  • 打赏
  • 举报
回复
。。。你要update的地方是只读的。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧