zoukankan      html  css  js  c++  java
  • sql 循环语句几种方式(变量循环,游标循环,事务)

    --第一
     
    declare @orderNum varchar(255)
    create table #ttableName(id int identity(1,1),Orders varchar(255))
    declare @n int,@rows int

    insert #ttableName(orders) select orderNum from FOrders where orderId<50 --select @rows=count(1) from pe_Orders select @rows =@@rowcount set @n=1 while @n<=@rows   begin     select @orderNum=OrderNum from PE_Orders where OrderNum=(select Orders from #ttableName where id=@n)     print (@OrderNum)     select @n=@n+1   end drop table #ttableName
     
     
    --第二
     
    declare @tmp varchar(50)--临时变量,用来保存游标值
    declare y_curr cursor for --申明游标 为orderNum
    select orderNum from FOrders where orderId<50
    open y_curr --打开游标
    fetch next from Y_curr into @tmp ----开始循环游标变量
    while(@@fetch_status=0)---返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
      begin
        print (@tmp)
        update FOrders set Functionary+@tmp where orderNum=@tmp --操作数据库
        fetch next from y_curr into @tmp --开始循环游标变量
      end
    close y_curr--关闭游标
    deallocate y_curr --释放游标

    --第三

    select orderNum,userName,MoneyTotal into #t from FOrders po 
    DECLARE @n int,@error int
    --set @n=1 
    set @error=0
      BEGIN TRAN --申明事务
        declare @tmp varchar(50),@userN varchar(50) --临时变量,用来保存游标值
        declare y_curr cursor for --申明游标 为orderNum,userName
        select orderNum,userName from FOrders where Orderid<50
        open y_curr
        fetch next from y_curr into @tmp,@userN
        while @@fetch_status = 0
          BEGIN
            select isnull(sum(MoneyTotal),0),orderNum from #t where username=@userN
            -- set @n=@n+1
            set @error=@error+@@error--记录每次运行sql后 是否正确 0正确
            fetch next from y_curr into @tmp,@userN
          END
        IF @error=0
        BEGIN
      commit tran --提交
    END
    ELSE
      BEGIN
        ROLLBACK TRAN --回滚
      END
    close y_curr
    deallocate y_curr
    DROP TABLE #t
  • 相关阅读:
    20155318Java课堂实践20170510
    2017-2018-1 20155220 20155309 20155317 实验一 开发环境的熟悉
    2017-2018 20155309南皓芯 信息安全系统基础设计第五周博客
    2017-2018 20155309南皓芯 信息安全系统基础设计第四周博客
    20155309 南皓芯 信息安全系统基础设计第三周博客
    关于利用GPG加解密的实验
    20155309南皓芯第二周课堂实践
    2017-2018 20155309南皓芯 信息安全系统基础设计第一周博客
    20155309 2016-2017-2《Java程序设计》课程总结
    20155309实验五 网络编程与安全
  • 原文地址:https://www.cnblogs.com/fm168/p/5464132.html
Copyright © 2011-2022 走看看