34,590
社区成员
发帖
与我相关
我的任务
分享
EXEC('SELECT * FROM '+@TABLE+'')
CREATE proc CS_GetTreeTable
@ID INT= NULL,
@TabName varchar(10)
AS
BEGIN
create TABLE #Tab (Class_ID INT, Parent_Id INT, Class_Name VARCHAR(10), Lev INT)--返回结果的表结构
DECLARE @lev INT,@sql varchar(1000)
SET @lev=0
WHILE (@lev=0 or @@ROWCOUNT>0 )
BEGIN
SET @Lev=@Lev+1
set @sql='INSERT #Tab(Class_ID, Parent_Id, Class_Name, Lev) SELECT Class_ID, Parent_Id, Class_Name, '+ltrim(@Lev)+' FROM '+@tabname+'
WHERE ('+ltrim(@Lev)+'=1 and ((Parent_Id='+ltrim(@ID)+') or ('+ltrim(@ID)+' = 0 and Parent_Id = 0))) or
(Parent_Id in (SELECT Class_ID FROM '+@tabname+' WHERE Lev='+ltrim(@Lev)+'-1))
ORDER BY Class_ID'
exec(@sql)
End
select * from #Tab
END