无限级分类查询一个栏目下的所有子栏目

这是一个关于如何使用SQL存储过程查询一个栏目及其所有子栏目信息的示例。存储过程名为UP_limitcascade,它接受栏目ID、表名、栏目列名和父级列名作为参数,递归地获取指定栏目下的所有子栏目。但要注意,当子栏目ID字符串超过nvarchar(max)长度时,部分数据可能会被截断。
摘要由CSDN通过智能技术生成

接近通用:(本存储过程有个弊端就是,当你查询的子栏目加起来的字符串的长度大于nvarchar(max)的时候,字符串会自动截取,就会出现有些子栏目查不出来的情况,所有只能查询那些子栏目适中的无限级联)

------------------------------------------------------
---存储过程-无限级联-获得该栏目下的所有子栏目---
------------------------------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UP_limitcascade]')
and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[UP_limitcascade]
GO
create procedure UP_limitcascade
@catid int,--栏目ID,
@table nvarchar(50),--表名
@idfield nvarchar(50),--栏目列名
@parentidfield nvarchar(50)--栏目父级列名
as

declare @catstr nvarchar(max)--该栏目下的所有子栏目的id字符串:如(1,2)
declare @tempcatstr nvarchar(max)--中间过度变量1
declare @tempcatstr1 nvarchar(max)--中间过度变量2
declare @catcount int--栏目的子栏目总数
declare @sql nvarchar(max)

set @sql = 'sel

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值