求msSQl的存储过程:
比如表user中的num字段 现在用一个存储过程更新表 user中所有的num字段的值
num字段的值要从1开始递增2(如:第一条记录的值是1,第二条记录的值是3 一直这样递增)

解决方案 »

  1.   

    游标实现。
    类似例子:--***************************************************************
    -- <summary>由于需求变更,联系人控件加了一列(客户联系人/专案联系人),
    --          需要对客户以前的客户进行历史数据更新,以下是更新脚本
    --</summary>
    -- <para=name>King.Zheng</name>    
    -- <para=date>2005/7/8</date>
    --***************************************************************--开始事务
    BEGIN TRAN--不显示计数信息
    SET NOCOUNT ON
    DECLARE @ProjNo varchar(50),@CusNo varchar(50)--声明游标
    DECLARE CRMPSContact_cursor CURSOR FOR 
    SELECT ProjNo
    FROM CRMPSContact
    WHERE ProjNo>0--打开游标
    OPEN CRMPSContact_cursor--取第一行的值给专案变量: @ProjNo
    FETCH NEXT FROM CRMPSContact_cursor 
    INTO @ProjNo--执行错误回滚
    if @@error!=0
      begin
        rollback tran
        return
      end--移动游标,其它所有行更新操作(当到结尾时退出)
    WHILE @@FETCH_STATUS = 0
    BEGIN      
       --游标移到下一行
       FETCH NEXT FROM CRMPSContact_cursor 
       INTO @ProjNo   
       update CRMPSContact 
       set CusNo = @CusNo
       where ProjNo = @ProjNo
       
       --执行错误回滚
       if @@error!=0
       begin
         rollback tran
         return
       end
    END--提交所有变更
    COMMIT TRAN--关闭游标
    CLOSE CRMPSContact_cursor--释放游标
    DEALLOCATE CRMPSContact_cursor--恢复设置
    SET NOCOUNT OFF
    GO
      

  2.   

    以上楼主的处理应该是比较简单的了
    是应该使用游标去while