我怎样才能用存储过程追加数据库中的记录?[英] how can i append records in database with store procedure?

问题描述

嗨我有一张包含此记录的表(GroupId、ParentGroupId、GroupName).
我想展示一个具有完整路径的组,从主父到它自己

像这样:红樱桃:红樱桃>>樱桃>>水果


我写了一个程序给我父母的名字,但我想有一个附加父母名字并给我一个字符串的过程

我想对该表中的所有记录执行此操作

谢谢你的回答

推荐答案

你好,
将程序的返回数据带到tempy表中.
编写函数来设置父级heighrachichy.
然后你可以插入数据.

首先你必须在你的数据库中写一个这样的函数

设置 ANSI_NULLS ONset QUOTED_IDENTIFIER OFF开始ALTER 函数 [dbo].[funcGenerate_TreeViewDescsNEW](@Code as Varchar(15),@TreeViewType as varchar(15))返回 Varchar(255)作为开始DECLARE @vcReturnValue varchar(255)声明 @ParentIDLevel1 varchar(255)声明 @ParentIDLevel2 varchar(255)声明 @ParentIDLevel3 varchar(255)声明 @ParentIDLevel4 varchar(255)声明 @SubcodeLevel2 varchar(255)声明 @SubcodeLevel3 varchar(255)IF @TreeViewType='LOCATION'开始声明 @intLocLevel int声明 @numLocID 数字(18,0)声明 @numRefLocID 数字(18,0)声明 @vcLocationCode varchar(15)声明 @vcLocationDescription varchar(255)声明 @vcLocDescLevel1 varchar(255)声明 @vcLocDescLevel2 varchar(255)声明 @vcLocDescLevel3 varchar(255)声明 @vcLocDescLevel4 varchar(255)set @vcLocationCode = @Codeselect @vcLocationCode = numLocID,@numRefLocID= ParentID from LocationMaster where numLocID=@vcLocationCode设置 @intLocLevel = 0if @numRefLocID = 0开始选择 @vcLocationDescription =vcLocationDescription 来自 LocationMaster where numLocID=@vcLocationCodeset @vcReturnValue= @vcLocationDescriptionENDWhile (@numRefLocID <> 0)开始if (@intLocLevel = 1 )开始设置 @vcLocationDescription = @vcLocationDescription + (Select vcLocationDescription from LocationMaster where numLocID=@vcLocationCode) + '>'END否则开始设置 @intLocLevel = 1设置 @vcLocationDescription =(选择 vcLocationDescription from LocationMaster where numLocID=@vcLocationCode) + '>'ENDselect @vcLocationCode=numLocID,@numRefLocID=ParentID 来自 LocationMaster 其中 numLocID=@numRefLocIDIF (@numRefLocID = 0)开始选择 @vcLocDescLevel1 =vcLocationDescription 来自 LocationMaster where numLocID=@vcLocationCode设置 @vcLocationDescription = @vcLocationDescription + @vcLocDescLevel1ENDENDset @vcReturnValue= @vcLocationDescriptionEND

返回 @vcReturnValue结束


之后通过传递 GroupID 在您的过程中调用它
就这样

<pre lang="sql">SELECT [dbo].[funcGenerate_TreeViewDescsNEW](250,'LOCATION') as 'vcLocationDescription',numLocIDFROM LocationMaster


你的输出会是这样的......

Bb-Chennai-Venus Millenium Square-Royapuram>Chennai>Tamilnadu

你可以添加''n''个子组吧正常工作

本文地址:https://www.itbaoku.cn/post/1394878.html