存储过程递归获取获取多级部门全名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程递归获取获取多级部门全名相关的知识,希望对你有一定的参考价值。

部门表:

技术分享

人员表:

技术分享

存储过程:

 

--OrgID 72 当前的部门ID
ALTER function [dbo].[getOrgAllName](@OrgID int)
returns nvarchar(500)
as
begin

--调试用
--declare @OrgID int
--set @OrgID=72

declare @oname nvarchar(50)
declare @fid int
declare @rtnValue nvarchar(500)

select @oname=orgname,@fid=parentid from sys_org where [email protected]

if (@fid=0)
set @[email protected]
else
begin
select @rtnValue=dbo.getOrgAllName(@fid)
set @[email protected]+‘\\‘[email protected]
end
--print @rtnValue
return @rtnValue
end

 

调用和测试结果:

select UserID,USERNO,USERNAME,ORGID, dbo.getOrgAllName(OrgID) as 部门全称 from Sys_User

技术分享

 

以上是关于存储过程递归获取获取多级部门全名的主要内容,如果未能解决你的问题,请参考以下文章

使用MyBatis轻松实现递归查询与存储过程调用

MySQL 存储过程,获取使用游标查询的结果集

存储过程

存储过程——公用表表达式(CTE)

存储过程——公用表表达式(CTE)

EF Core 调用具有多个连接的存储过程并映射相关数据