sql server 游标和with as使用

泄露秘密 提交于 2019-11-27 06:15:02
DECLARE @userid INT , @gameid NVARCHAR(50)   --声明变量,需要读取的数据
DECLARE cur CURSOR                 --去掉STATIC关键字即可
FOR
    WITH
     Emp AS
        (SELECT acc.*
        FROM GXSpreadDB.dbo.gxs_account acc
        LEFT JOIN RYAccountsDB.dbo.AccountsInfo Account
            ON acc.userid=Account.userid 
        WHERE parentuserid=7213 
               AND Account.AgentID=0
        UNION ALL
        SELECT d.* FROM Emp ,GXSpreadDB.dbo.gxs_account d 
        WHERE d.parentuserid =Emp.userid )

     select userid,gameid from Emp
OPEN cur                                --打开游标
FETCH NEXT FROM cur INTO @userid, @gameid     --取数据
WHILE ( @@fetch_status = 0 )            --判断是否还有数据
    BEGIN
        SELECT '数据: ' + RTRIM(@userid)+';' + @gameid
        --UPDATE #T SET name='测试' WHERE id=4  --测试静态动态用
        FETCH NEXT FROM cur INTO @userid, @gameid   --这里一定要写取下一条数据
    END
CLOSE cur                                --关闭游标
DEALLOCATE cur

 

 查询结果:

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!