IS_MEMBER 的存储过程问题
我有一个具有列 ID 的用户表,
ID nvarchar(4000)
GroupRank int
Definition nvarchar(4000)
可以是用户 ID(在这种情况下 groupRank 为 NULL)、具有排名的域组(在这种情况下 grouprank 不为空)或名为 #DefaultGroup 的保留默认组。
我需要一个存储过程,它将:
如果 ID=SYSTEM_USER,则返回该定义
否则 - foreach 记录在具有 GroupRank NOT NULL 的用户中,按组排名顺序,如果 IS_MEMBER(ID) =1,则返回该定义(如果有)
否则 - # DefaultGroup 定义(如果存在)
否则返回 NULL。
是否有捷径可寻?
I have a table Users with columns
ID nvarchar(4000)
GroupRank int
Definition nvarchar(4000)
ID can be a userid (in which case groupRank is NULL), a domain group with a rank (in which case grouprank is not null) or a reserved default group called #DefaultGroup.
I need a stored procedure that will:
If ID=SYSTEM_USER, return that Definition
Otherwise - foreach record in Users with GroupRank NOT NULL in order of group rank, if IS_MEMBER(ID) =1, that definition (if any)
Otherwise - the #DefaultGroup definition (if it's there)
Otherwise return NULL.
Is there an easy way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我理解正确,您也许可以使用类似于以下内容的某种 case 语句:
If I'm understanding you correctly, you might be able to use some sort of case statement similar to the one below:
这似乎可以作为表函数使用
This seems to work as a table function