declare mycur cursor for
select MemberID,Name,Title from ra_bgBlog
open mycurDECLARE @MemberID int, @Name varchar(100),@title varchar(100)declare @n int 
@n=10fetch next from mycur
INTO @MemberID, @Name,@title
WHILE @@FETCH_STATUS = 0
beginUpdate ra_bgBlog set MemberID=@MemberID,Name=@Name,Title=@title where ID=@n@n=@n+1
fetch next from mycur
INTO @MemberID, @Name,@titleend
close mycur

解决方案 »

  1.   

    set @n=10
    set @n=@n+1我加了SEt 也没用啊
      

  2.   

    值是变量
    最好是定义个SQL语句
    用EXEC(@SQL)的形式给楼主一个建议
      你的SQL写的很乱,最好写的规范一点
    别到处定义
    这也是我第一天上班主管教训的
      

  3.   


    set @n=10 
    set @n=@n+1 Update ra_bgBlog set MemberID=@MemberID,Name=@Name,Title=@title where ID=Ltrim(@n) close mycur
    deallocate mycur  --加个重新分配游标
      

  4.   

    到底更新数据出错还是更本就没有更新过
    或者是一部发更新了,一部分没有更新。declare mycur cursor for 
    select MemberID,Name,Title from ra_bgBlog 你建的这个游标后面连条件都没有,如果你的ra_bgBlog表有几万条语句,想想你的这个游标要更新多少次呢?Update ra_bgBlog set MemberID=@MemberID,Name=@Name,Title=@title where ID=@n 
    Set @n = 10
    看了你的那条语句,好像是要前十以下的所有的数据进行更新,看看下面这条可不可以呢?
    update ra_bgBlog set MemberID=a.MemberID,Name=a.Name,Title=a.Title from(
            select MemberId,Name,Title from ra_bgBlog
    ) as a
    where Id > 10