可以传表名么?
Create FUNCTION [dbo].[RecursionChildList]--创建一个递归父子表结构为(ID,NAME,PID)的函数
(
@PID int,--传入父级ID
@TableName varchar(50),--传入查询表名称
@IsShowParent bit --是否插入父级
)
RETURNS @T TABLE(ID VARCHAR(10),Name VARCHAR(50),PARENTID VARCHAR(10),LEVEL INT)
AS
BEGIN
DECLARE @INDEX INT
SET @INDEX=1
IF @IsShowParent=TRUE
BEGIN
INSERT INTO @T SELECT ID,NAME,PARENTID FROM @TableName WHERE ID=@PID --插入当前级别
END
INSERT INTO @T SELECT ID,NAME,PARENTID,@INDEX FROM @TableName WHERE PARENTID=@PID--插入PID下一级的数据
---如果本级
WHILE @@ROWCOUNT>0
BEGIN
SET @INDEX=@INDEX+1
INSERT INTO @T SELECT T1.ID,T1.NAME,T1.PARENTID,@INDEX FROM @TableName T1,@T T2
WHERE T1.PARENTID=T2.ID AND T2.LEVEL=@INDEX-1
END
RETURN
END
服务器: 消息 137,级别 15,状态 2,过程 RecursionChildList,行 16
必须声明变量 '@TableName'。
服务器: 消息 137,级别 15,状态 1,过程 RecursionChildList,行 19
必须声明变量 '@TableName'。
服务器: 消息 137,级别 15,状态 1,过程 RecursionChildList,行 25
必须声明变量 '@TableName'。
求解决
胡说叔叔
智慧大石
相关分类