sqlServer 自定义函数-传入参数并返回动态表

自定义函数-传入参数并返回动态表

create FUNCTION dbo.v_usrlist
(
	@usr varchar(20)/*传入当前用户代码*/
)
--返回动态表 表里面包含编码及名称两个字段
RETURNS 
    @tolist TABLE 
(
	usrcode varchar(30), 
	usrname varchar(64)
)
AS
BEGIN
	--创建变量
	declare @usrcattr varchar(30)
	declare @usrgroup varchar(30)
	declare @gpcattr varchar(30)
	declare @orgcode varchar(30)
	--获取传入账户对应的账户属性 群组信息
	select @usrcattr=usrattr,@usrgroup=groups,@orgcode=orgcode  from insuser where usrcode=@usr;
	select @gpcattr = cattr from insgroups where groupno = @usrgroup;
	
	--属性为管理员可查询所有用户
	if (@usrcattr in (0,1,2))
		begin 
			insert into @tolist select usrcode,usrname from insuser;
		end
	--属性为公司用户可查询公司内用户
	if (@usrcattr = 3)
		begin 
			insert into @tolist select usrcode,usrname from insuser where left(orgcode,5) = left(@orgcode,5);
		end
	--属性为部门用户可查询部门内用户
	if (@usrcattr = 4)
		begin 
			insert into @tolist select usrcode,usrname from insuser where left(orgcode,7)= left(@orgcode,7) ;
		end
	--属性为普通用户可查询自己
	if (@usrcattr = 5)
		begin 
			insert into @tolist select usrcode,usrname from insuser where usrcode=@usr ;
		end

	if(@gpcattr in (3,4)) 
		begin 
			insert into @tolist select usrcode,usrname  from insuser where orgcode in (select distinct orgcode from v_usrorglist(@usr,0) )
		end
		
		--审批人可看到提交人的单子
		insert into @tolist select frusr,'' from instask where tousr=@usr;
		--insert into @tolist select frusr,'' from inssplist where tousr=@usr;
	RETURN 
END

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

Your Mr.RIGHT

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值