我在MSSql游标里使用了修改字段值的语句
update users set [_name]=@_name
本来是想让他修改当前记录的值,结果修改了表中所有的记录值,这样,表中_name字段就是相同值了(最后一次修改的值)如何使用游标修改当前记录的字段值呢?而不是修改所有的记录。

解决方案 »

  1.   

    我知道一种方法,就是update users set [_name]=@_name加条件,如下
    update users set [_name]=@_name where [_id]=@_id这样应该是可以的,但好像很多余,明明要修改当前游标处的值,为什么还要执行查询语句呢?
      

  2.   

    不同的记录里面,_name是不一样的,我通过@name为_name赋值如果 符合条件 @name='一'
    如果 符合条件 @name='二'
    如果 符合条件 @name='三'
    如果 符合条件 @name='四'大概列举了100个,你提醒我了,可以使用update where 列举100多次,也一样的。这样可以不用游标了
    可是我很想学习下用游标怎么做,毕竟做了1一个小时,不想再重新做了
      

  3.   

    1〉游标可以在声明的时候,指定那些列可以修改,不指定,就当时只读游标,不能进行修改操作。
    2〉修改的语法:
    update tb 
    set col_Name = 'xxx'
    where current of cursor_name