存储过程里的递归 实现方法_存储过程

一个二叉树的递归,找出左边最下面的一个点 
id 自动编号 
pid 父ID 
id_path 节点路径 
flg 位置,0左边,1右边 
ALTER      PROCEDURE [dbo].[get_class] 

复制代码 代码如下:

@class int, 
@return int output 
AS 

SELECT  @return=isnull(( select top 1 id  from class where pid=@class and flg=0 ),-2) 

if @return>-1 
    begin 
    exec get_class @return,@return output--这里为什么要用@return,你要最后得到这个值,必须把它传进去 

    end 

else 
    begin 
    SELECT @return=@class 
    end 
GO 
 
其实只需一个查询语句就能找出最下面的ID 
节点路径包函1,并且父节点位置都是左边,取出最大一个 
select top 1 * from class a where id_path like '%1,%' and flg=0 and (select flg from class where id=a.pid)=0 order by id desc

时间: 2024-10-16 17:39:35

存储过程里的递归 实现方法_存储过程的相关文章

存储过程里的递归 实现方法

一个二叉树的递归,找出左边最下面的一个点  id 自动编号  pid 父ID  id_path 节点路径  flg 位置,0左边,1右边  ALTER      PROCEDURE [dbo].[get_class] 复制代码 代码如下:@class int,  @return int output  AS SELECT  @return=isnull(( select top 1 id  from class where pid=@class and flg=0 ),-2) if @retur

几例在ASP存储过程的使用方法_存储过程

一.使用Command对象和Parameter对象传递参数 本讲将主要使用Microsoft SQL Server7.0数据库,先建立一个连接文件AdoSQL7.asp备用,以后用到时不再特别说明. % ''AdoSQL7.asp Option Explicit Response.Expires = 0 ''第一部分: 建立连接 Dim Cnn, StrCnn Set Cnn = Server.CreateObject("ADODB.Connection") StrCnn = &quo

在ASP中调用存储过程的几种方法_存储过程

1 这也是最简单的方法,两个输入参数,无返回值: set connection = server.createobject("adodb.connection") connection.open someDSN  Connection.Execute "procname varvalue1, varvalue2"  '将所有对象清为nothing,释放资源 connection.close set connection = nothing 2 如果要返回 Recor

SQL存储过程初探第1/2页_存储过程

前言 一直用ASP+ACCESS来编写网页和公司的内部应用系统,内部应用系统也就是大家说的OA吧,这个我也不知道,公司又叫它ERP,反正不管什么,它是用来帮助公司处理日常工作的,简化劳动的.从来没用过存储过程,所有的添加,删除,修改都是在ASP里面写程序执行,代码很多.数据量少的时候没什么感觉,挺快的,可等到数据量大的时候,上W条记录查询,尤其是不分页都显示在一页里的时候情况就出现了,速度很慢,要10几秒才有反应,所以想到了要用SQL的存储过程来简化代码和加快程序的执行速度! 在学习了51JS里

提高关键字在百度里的排名的方法_网站应用

1. 处理关键字:  首先收集很多与你的网站或产品有关的关键字了.接下来的工作就是把收集到的关键字进行组合,把它们组成常用的词组或短语.很多人在搜索的时候会使用两个或三个字组成词.据统计,平均是2.3个字.不要用普通的,单个字作为关键字.这样的关键字很难排到搜索引擎的前十位.例如:你有以下几个关键字:"搜索引擎.软件.提高",试着把他们组合为"搜索引擎软件"."搜索引擎提高"等.把字组成关键字短语有利于提高你网站的排名,你将会更有效提高你网站访问

Repeater里switch的使用方法_实用技巧

这是ASPX里的代码 复制代码 代码如下: <asp:Repeater ID="OrderList" runat="server">         <ItemTemplate>          <%#this.info(Eval("id").ToString(), Eval("id").ToString())%>         </ItemTemplate></asp

oci 输出参数-OCI 怎么提取整型输出参数,这个参数是存储过程里返回的一个值,跟表里的字段没啥关系

问题描述 OCI 怎么提取整型输出参数,这个参数是存储过程里返回的一个值,跟表里的字段没啥关系 OCIStmtFetch()该怎么写呢,还是其他的方法. 这个输出参数是一个结果描述而已,如密码,用户名正确,返回1,错误返回0,跟表的字段没关系

为了保存用户账号的安全性,在登陆,存储过程中会采用什么方法??

问题描述 为了保存用户账号的安全性,在登陆,存储过程中会采用什么方法?? 解决方案 解决方案二:加密...ssl等...解决方案三:引用1楼attilax的回复: 加密...ssl等... 笔试题,如果是你你怎么写?解决方案四:加密啊,数据库语句直接使用加密解决方案五:数据库字段加密存储.登录时解密对比.解决方案六:登陆一般是https协议解决方案七:一般都用MD5加密,也用https来弄~~~~不过现在权限方面的话,比如登陆,就很流行用springsecurity,比较靠谱的~~建议楼主学习一

asp存储过程使用大全_存储过程

1,调用没有参数的存储过程 <% set conn=server.CreateObject("adodb.connection") set cmd=server.CreateObject("adodb.command") strconn="dsn=pubs;uid=sa;pwd" conn.Open strconn set cmd.ActiveConnection=conn cmd.CommandText="{call nono}