zoukankan      html  css  js  c++  java
  • 自己写的一个 游标 实例

    1游标实现
    三张 关联的表 的游标操作
    at  字段 AID ANAME
    bt  字段 BID BNAME AID
    ct  字段 CID CNAME  BID
    通过循环读取at中的id 更新bt中的name 再根据bt中id循环更新ct中的name

    --SET NOCOUNT ON 显示受影响的行数
    DECLARE @AID INT
    DECLARE @BID INT

    DECLARE publish_cursor CURSOR FOR
    SELECT Aid FROM aT
        OPEN publish_cursor
        FETCH NEXT FROM publish_cursor
        INTO @AID

            WHILE @@FETCH_STATUS = 0
            BEGIN
            print @AID
                --修改记录
                    update BT set BNAME=GETDATE() where Aid=@Aid

         DECLARE publish_cursor2 CURSOR FOR
         SELECT Bid FROM BT
         OPEN publish_cursor2

        FETCH NEXT FROM publish_cursor2
        INTO @BID
        print @BID
         update CT set CNAME=GETDATE() where Bid=@Bid
          --修改结束
         FETCH NEXT FROM publish_cursor2 into @Bid

                      CLOSE publish_cursor2
                      DEALLOCATE    publish_cursor2

                --修改结束
                FETCH NEXT FROM publish_cursor into @Aid
               
            END
        CLOSE publish_cursor
        DEALLOCATE publish_cursor
       
    GO

    2用CTE实现 WITH(但是他只能对紧接着的sql语句有效,所以只能执行一部操作)
           ;WITH atInfo as (SELECT * FROM aT where aid=1),
           btInfo as (SELECT * FROM bT where bid in (select AID from atInfo))
    --       Update BT set bName = 'WITH'  WHERE AID in (select AID from atInfo)
           Update cT set cName = 'WITHc'  WHERE bID in (select bID from btInfo);
      select * from ct;
     

  • 相关阅读:
    R 读取xls/xlsx文件
    网页免费转换为可编辑的PDF
    Python: NumPy, Pandas学习资料
    鱼油资料
    Activity的四种启动模式和onNewIntent()
    Android Service、IntentService,Service和组件间通信
    Activity生命周期
    Node.js学习起步
    Android 技能图谱学习路线
    Blog
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1563098.html
Copyright © 2011-2022 走看看