在应用中我们经常会遇到一些存在层级关系的数据,一般我们会采用 id name parentid的方式进行建表,这样我们可以就可以实现关系的无限级扩展了,但是我们要查询某个层级下的所有下属的时候就有时候就比较麻烦了,一般我们开始就会想到
select * from table where parentid='0000000001' 但是这样只能够查询出第一级的数据,因此我们需要一个递归查询,一般我们需要建立两个存储过程来完成这个功能,一个存储过程用来获取该数据的所有下级的id,当然大家可能都想到了,这里应该需要用到游标来循环取数据
如:
create PROCEDURE [dbo].[GetAlldataid]
@ID varchar(10)
AS
declare @data CURSOR
declare @parentID varchar(15)
declare @childID varchar(15)