字段名那能用变量?  除非你用exec

解决方案 »

  1.   

    用变量执行成功过,最近的事,但现在失败了,
    类似RecordSet原理
    cursor下次fetch前对记录用变量值进行更新,
    有没有这种可能
      

  2.   

    寫祥細點你的需求,可能不需用ursor
      

  3.   

    按你的第一种写法,根本就不是更新,是将 @aa赋值为@zz 而已
      

  4.   

    --第一种的写法没问题,执行不会错,只是没有更新的效果而已.
    --测试--测试数据
    create table QQQ(AA varchar(50),ZZ varchar(50))
    insert QQQ select 'W','E'
    union  all select 'S','D'
    union  all select 'X','C'
    go--处理
    DECLARE  CURS CURSOR FOR SELECT AA,ZZ FROM QQQ FOR UPDATE DECLARE  @aa varchar(50),@zz varchar(50)OPEN CURSFETCH NEXT FROM CURS INTO @aa,@zzWHILE @@FETCH_STATUS = 0
    BEGIN
    UPDATE QQQ  SET @aa = @zz
    WHERE CURRENT OF CURS
    FETCH NEXT FROM CURS INTO @aa,@zz
    ENDCLOSE CURS
    DEALLOCATE CURS
    go--显示结果
    select * from QQQ--删除测试
    drop table QQQ/*--测试结果
    AA           ZZ     
    ------------ -----------
    W            E
    S            D
    X            C(所影响的行数为 3 行)
    --*/
      

  5.   

    to  zjcxc(: 邹建  老兄,我真的更新成功过,想查个究竟,,helpto  progress99(如履薄冰) 我就是想要对cursor进一步了解
      

  6.   

    一般用cursor的地方能用循環代替,且循環相對效率還高。