学习笔记——SQL SERVER的递归
2014-03-10 18:21
197 查看
SQL SERVER似乎天然具有支持递归的属性。
1、比如说,有几次,我编写或修改存储过程的时候,为图方便,在末尾随手写上 执行这个存储过程 的语句,比如
[sql] view plaincopyALTER PROCEDURE prd_GetData
@Top INT = 10;
AS
SELECT * FROM [dbo].Table1 ORDER BY ID DESC;
END
EXEC [dbo].prd_GetData
本来应该用鼠标选定最后一行,指定它来执行,但一时手颤,没有选上就按下运行,结果出来好多个结果,最后系统警告太多层了,SQL自动退出。
究其原因,是系统将
[sql] view plaincopyEXEC [dbo].prd_GetData
这句也当成了存储过程本身的一个语句,形成递归,因此无限循环了。
2、又比如说,采用select 变量=变量 + 某字段... from 表 的方式,这个变量会自动加上所有符合条件的记录的某字段。
详见 /article/1395925.html
3、刚刚看了一篇文章,说可以用WITH AS语句来实现。如:
with w_Storage_Depository as
(
select DID,DName,PID from Storage_Depository where DID='A-1-1'
union all
select A.DID,A.DName,A.PID from Storage_Depository A,
w_Storage_Depository B where A.DID=B.PID
)
select * from w_Storage_Depository
详见:http://www.lmwlove.com/ac/ID748
1、比如说,有几次,我编写或修改存储过程的时候,为图方便,在末尾随手写上 执行这个存储过程 的语句,比如
[sql] view plaincopyALTER PROCEDURE prd_GetData
@Top INT = 10;
AS
SELECT * FROM [dbo].Table1 ORDER BY ID DESC;
END
EXEC [dbo].prd_GetData
本来应该用鼠标选定最后一行,指定它来执行,但一时手颤,没有选上就按下运行,结果出来好多个结果,最后系统警告太多层了,SQL自动退出。
究其原因,是系统将
[sql] view plaincopyEXEC [dbo].prd_GetData
这句也当成了存储过程本身的一个语句,形成递归,因此无限循环了。
2、又比如说,采用select 变量=变量 + 某字段... from 表 的方式,这个变量会自动加上所有符合条件的记录的某字段。
详见 /article/1395925.html
3、刚刚看了一篇文章,说可以用WITH AS语句来实现。如:
with w_Storage_Depository as
(
select DID,DName,PID from Storage_Depository where DID='A-1-1'
union all
select A.DID,A.DName,A.PID from Storage_Depository A,
w_Storage_Depository B where A.DID=B.PID
)
select * from w_Storage_Depository
详见:http://www.lmwlove.com/ac/ID748
相关文章推荐
- 学习笔记——SQL SERVER的递归
- [SQL Server 2005/2008]递归更新update(使用CTE公用表达式)
- SQL Server中CTE的另一种递归方式-从底层向上递归
- SQL Server 2005新特性之使用with关键字解决递归父子关系
- SQL SERVER 2008递归
- 预排序遍历树算法(非递归无限极分类算法)学习笔记
- 在sql server中利用with as实现递归功能
- SQL SERVER实现递归
- SQL SERVER 存储过程的天然递归
- SQL Server 2005 Recursion(递归) and WITH Clause
- SQL SERVER 递归查询(2)——向下递归计算
- 学习笔记---递归
- sql server实现oracle递归树函数例子(start with.....connect by prior.....)
- 《SQL SERVER 2005数据库开发实战--章立民》学习笔记(一)
- sql server 递归简单应用
- SQL Server 2005新特性之使用with关键字解决递归父子关系
- 《数据结构与算法》学习笔记18 递归_变位字
- SQL SERVER 之 WITH AS 递归
- 麻省理工《算法导论》学习笔记(二)渐近符号,递归及解法
- SQL Server 2005中的递归实现