游标和递归sql 的一些代码
- DECLARE @UserID INT; --推广员帐号
- DECLARE @ProxyID INT; --代理帐号
- DECLARE @Score INT=1000; --分数
- SELECT
- @UserID = [SpreaderID]
- FROM
- [QPAccountsDB].[dbo].[AccountsInfo]
- WHERE
- UserID = 5055;
- SELECT --查出推广员的代理帐号
- @ProxyID = ProxyID
- FROM
- [QPAccountsDB].[dbo].[AccountsInfo]
- LEFT JOIN
- [QPProxyDB].[dbo].[BS_ProxyInfo]
- ON BS_ProxyInfo.account = AccountsInfo.Accounts
- WHERE
- UserID = @UserID;
- PRINT @ProxyID;
- CREATE TABLE #ProxyInfo
- (
- belongsAgent INT,
- assignProportion TINYINT
- );
- WITH cte
- AS ( SELECT
- belongsAgent
- FROM
- [QPProxyDB].[dbo].[BS_ProxyInfo]
- WHERE
- ProxyID = @ProxyID
- AND belongsAgent <> -1
- UNION ALL
- SELECT
- a.belongsAgent
- FROM
- [QPProxyDB].[dbo].[BS_ProxyInfo] a
- JOIN
- cte b
- ON a.ProxyID = b.belongsAgent
- WHERE
- a.belongsAgent <> -1)
- INSERT #ProxyInfo
- (
- belongsAgent,
- assignProportion
- )
- SELECT
- BS_ProxyInfo.ProxyID,
- assignProportion
- FROM
- cte LEFT JOIN [QPProxyDB].[dbo].[BS_ProxyInfo] ON BS_ProxyInfo.ProxyID = cte.belongsAgent
- ORDER BY
- BS_ProxyInfo.belongsAgent ASC;
- ---游标更新删除当前数据
- ---1.声明游标
- DECLARE cursor01 CURSOR SCROLL FOR
- SELECT
- *
- FROM
- #ProxyInfo
- ORDER BY
- belongsAgent ASC;
- DECLARE @AllTax INT
- SET @AllTax =@Score
- --2.打开游标
- OPEN cursor01;
- --3.声明游标提取数据所要存放的变量
- DECLARE
- @belongsAgent INT,
- @assignProportion TINYINT;
- --4.定位游标到哪一行
- FETCH FIRST FROM cursor01
- INTO
- @belongsAgent,
- @assignProportion; --into的变量数量必须与游标查询结果集的列数相同
- WHILE @@fetch_status = 0 --提取成功,进行下一条数据的提取操作
- BEGIN
- SET @AllTax=@assignProportion*@AllTax/100
- UPDATE [QPProxyDB].[dbo].[BS_ProxyInfo] SET allTax+=@AllTax WHERE ProxyID=@belongsAgent
- FETCH NEXT FROM cursor01
- INTO
- @belongsAgent,
- @assignProportion; --移动游标
- END;
- CLOSE cursor01;
- DEALLOCATE cursor01;
- DROP TABLE #ProxyInfo;
游标和递归sql 的一些代码的更多相关文章
- java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误
后台报出如下错误: Caused by: java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数 ORA-00 ...
- 使用BAT批处理执行sql语句的代码
使用BAT批处理执行sql语句的代码 有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法 1.把待执行Sql保存在一个文件,这里为2011022 ...
- PHP之SQL防注入代码集合(建站常用)
SQL防注入代码一 <?php if (!function_exists (quote)) { function quote($var) { if (strlen($var)) { $var=! ...
- 使用游标循环进行SQL更新插入的SQL语句
使用SQL中的循环,可以实现许多我们需要的操作,比如SQL更新操作.下面就为您介绍使用游标循环进行SQL更新插入的SQL语句写法,希望对您深入学习SQL更新有所帮助. --开始事务 BEGIN TRA ...
- php防sql注入过滤代码
防止sql注入的函数,过滤掉那些非法的字符,提高sql安全性,同时也可以过滤XSS的攻击. function filter($str) { if (empty($str)) return false; ...
- SQL备份数据库代码
SQL备份数据库代码 #region 服务每天备份一次数据库 /// <summary> /// 服务每天备份一次数据库 /// </summary> public void ...
- 修改Oracle游标数及排查游标问题相关SQL
查看当前游标数show parameter open_cursors; 修改游标最大数 ; commit; 查看游标消费情况 select o.sid, osuser, machine, count( ...
- 20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞
Ecshop 2.x/3.x SQL注入/任意代码执行漏洞 影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的“二 ...
- 特殊字符的过滤方法,防sql防注入代码的过滤方法
特殊字符的过滤方法 function strFilter($str){ //特殊字符的过滤方法 $str = str_replace('`', '', $str); $str = str_replac ...
随机推荐
- requestAnimFrame 动画的使用方法
//requestAnimFrame 封装,可以兼容所有浏览器 window.requestAnimFrame = (function(){ return window.requestAnimatio ...
- 关于springboot aop 俩次调用的问题 aop多次调用
由于我在springboot 启动类中 给我的切面类进行了赋值 即@Bean 然而我在切面类中加了@Component 导致 springboot 注入了俩个 bean 所以导致 aop 多次执行 ...
- github相关指令学习
正在廖雪峰官网学习关于git的相关知识,已经不是第一次来学习,但是忘得太快,索性这次边学边记录笔记,加深记忆,方便后期查看 1.找到一个合适的地方,鼠标右键 Git Bush Here ,新建文件夹, ...
- xshell 会话管理器快捷键
有没有发现xshell6关闭左边的会话管理器以后,打开就比较麻烦 那么可以自定义一个快捷键来打开: 然后输入一个快捷键 类型选择 菜单-->然后找会话管理器 完事儿 也可以自定义其他快捷键.自己 ...
- Android privilege escalation to mediaserver from zero permissions (CVE-2014-7920 + CVE-2014-7921)
墙外通道:http://bits-please.blogspot.com/2016/01/android-privilege-escalation-to.html In this blog post ...
- python3爬虫——下载unsplash美图到本地
最近发现一个网站www.unsplash.com ( 没有广告费哈,纯粹觉得不错 ),网页做得很美观,上面也都是一些免费的摄影照片,觉得很好看,就决定利用蹩脚的技能写个爬虫下载图片. 先随意感受一下这 ...
- 图像边缘检测——几种图像边缘检测算子的学习及python 实现
本文学习利用python学习边缘检测的滤波器,首先读入的图片代码如下: import cv2 from pylab import * saber = cv2.imread("construc ...
- 深入学习sequoiadb巨杉数据库及python连接方式
随着公司日益复杂与多变的需求,以及迅速扩展带来的海量数据业务,我们需要在提供高效服务的同时,降低其设备与程序维护成本.算了,不吹了,说白了就是需要从巨杉数据库中抓取大量的数据,但是我现在不会,所以需要 ...
- Modifying namespace in XML document programmatically
Modifying namespace in XML document programmatically static XElement stripNS(XElement root) { return ...
- Apache RocketMQ在linux上的常用命令
Apache RocketMQ在linux上的常用命令 进入maven安装后的rocketmq的bin目录 1.启动Name Server 2.启动Broker 3.关闭Name Server 4 ...