学习笔记——SQL SERVER的递归

网友投稿 610 2022-12-02

学习笔记——SQL SERVER的递归

学习笔记——SQL SERVER的递归

SQL SERVER似乎天然具有支持递归的属性

1、比如说,有几次,我编写或修改存储过程的时候,为图方便,在末尾随手写上 执行这个存储过程 的语句,比如

[sql] view plain copy 1. ALTER PROCEDURE prd_GetData2. Top INT = 10;3. AS4. SELECT * FROM [dbo].Table1 ORDER BY ID DESC;5. END6. 7. EXEC [dbo].prd_GetData

本来应该用鼠标选定最后一行,指定它来执行,但一时手颤,没有选上就按下运行,结果出来好多个结果,最后系统警告太多层了,SQL自动退出。

究其原因,是系统将

[sql] view plain copy 1. EXEC [dbo].prd_GetData

这句也当成了存储过程本身的一个语句,形成递归,因此无限循环了。

2、又比如说,采用select 变量=变量 + 某字段... from 表 的方式,这个变量会自动加上所有符合条件的记录的某字段。

3、刚刚看了一篇文章,说可以用WITH AS语句来实现。如:

with w_Storage_Depository as(select DID,DName,PID from Storage_Depository where DID='A-1-1'union allselect A.DID,A.DName,A.PID from Storage_Depository A,w_Storage_Depository B where A.DID=B.PID)select * from w_Storage_Depository

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:学习笔记——node.js
下一篇:“返回顶部”实现一例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~