游标和递归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 ...
随机推荐
- 理解数据库连接池和ThreadLocal实现的事务控制
我发现 不少人 误解了这两者. csdn上也有人提出过这种疑问: http://bbs.csdn.net/topics/250061733 经过查阅资料和认真分析,我特说明一下这两者概念上的区别. 我 ...
- Java中IO流中的装饰设计模式(BufferReader的原理)
本文粗略的介绍下JavaIO的整体框架,重在解释BufferReader/BufferWriter的演变过程和原理(对应的设计模式) 一.JavaIO的简介 流按操作数据分为两种:字节流与字符流. 流 ...
- 基于 zepto 的触摸函数封装
移动端使用 zepto 做一些基于触摸的动画的时候,需要开发一个函数库. 功能:实例化对象以后能够,触发相应的事件,能够返回给我,当前的移动方向和 X 轴 或者 Y 轴 的移动位移. var Touc ...
- 从零开始学 Web 之 CSS3(四)边框图片,过渡
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- SpringMVC redirect中文乱码问题
在使用"redirect:xxx.do?param=中文"时会出现乱码问题,解决方案如下: 使用model.addAttribute来替代直接拼接参数.如下: @RequestMa ...
- FFmpeg流媒体处理-收流与推流
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10623968.html 1. 简介 流媒体是使用了流式传输的多媒体应用技术.如下是维基百 ...
- C#微信公众号开发--网页授权(oauth2.0)获取用户基本信息一
前言 微信网页授权共分为两种方式:snsapi_base.snsapi_userinfo. snsapi_base需要关注公众号,获取用户信息时不弹出用户授权界面. snsapi_userinfo是在 ...
- [转]npm、 cnpm、yarn
本文转自:https://blog.csdn.net/sinat_34682450/article/details/79473658 终于搞懂了三者之间的关系- 要知道三者之间的关系首先要了解三个包管 ...
- 图解Docker容器和镜像
图解Docker容器和镜像 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别. 当我对Docke ...
- js jq输入框中按回车触发提交事件,用户在页面输入后按回车(Enter键)进行
js jq输入框中按回车触发提交事件,用户在页面输入后按回车(Enter键)进行 代码如下: <!DOCTYPE html> <html lang="en" xm ...