存储过程递归获取获取多级部门全名
部门表:
人员表:
存储过程:
--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 orgid=@OrgID
if (@fid=0)
set @rtnValue=@oname
else
begin
select @rtnValue=dbo.getOrgAllName(@fid)
set @rtnValue=@rtnValue+'\'+@oname
end
--print @rtnValue
return @rtnValue
end
调用和测试结果:
select UserID,USERNO,USERNAME,ORGID, dbo.getOrgAllName(OrgID) as 部门全称 from Sys_User