CREATE FUNCTION dbo.fn_GetFilteredIdsSqlString
(
@SystemUserId VARCHAR(36) ,
@ObjectTypeCode VARCHAR(10) ,
@entityname VARCHAR(100)
)
RETURNS NVARCHAR(max)
AS
BEGIN DECLARE @sqlText NVARCHAR(4000)
SET @sqlText = ' SELECT ' + @entityname + 'id id from ' + @entityname
+ ' JOIN SystemUserBase u ON ( u.SystemUserId = '''
+ @SystemUserId + ''' AND u.IsDisabled = 0 ) '
+ ' CROSS JOIN dbo.fn_GetMaxPrivilegeDepthMask_SQL('
+ @ObjectTypeCode + ',''' + @SystemUserId + ''' ) pdm '
+ ' WHERE ( ' + ' pdm.PrivilegeDepthMask IS NOT NULL '
+ ' AND ( ' + ' [' + @entityname + '].OwnerId IN ( '
+ ' SELECT OwnerId '
+ ' FROM [dbo].[fn_GetOwnerIdsForFilteredView](u.SystemUserId,'
+ @ObjectTypeCode + ') ) ' + ' OR EXISTS ( SELECT 1 '
+ ' WHERE ( ( ( ( pdm.PrivilegeDepthMask & 0x4 ) != 0 ) OR ( ( pdm.PrivilegeDepthMask & 0x2 ) != 0 ) '
+ ' AND [' + @entityname + '].[OwningBusinessUnit] IN ( '
+ ' SELECT BusinessUnitId FROM SystemUserBusinessUnitEntityMap WITH ( NOLOCK ) WHERE SystemUserId = '''
+ @SystemUserId + ''' AND ObjectTypeCode =' + @ObjectTypeCode
+ ' ) ) '
+ ' OR ( ( ( pdm.PrivilegeDepthMask & 0x8 ) != 0 ) AND ['
+ @entityname + '].[OwningBusinessUnit] IS NOT NULL) ) ' + ' OR ['
+ @entityname + '].' + @entityname + 'id IN ( '
+ ' SELECT ObjectId FROM [dbo].[fn_GetSharedRecordIdsForFilteredView]('''
+ @SystemUserId + ''' , ' + @ObjectTypeCode + ') ) ) ) )' RETURN @sqlText END

因为存在动态SQL,所以不好写成 表值函数.暂时只能这样了.

CRM 权限内可查看的记录数的更多相关文章

  1. sqlserver sql语句查看分区记录数、查看记录所在分区

    select count(1) ,$PARTITION.WorkDatePFN(workdate) from imgfile group by $PARTITION.WorkDatePFN(workd ...

  2. 无依赖简单易用的Dynamics 365实体记录数计数器并能计算出FetchXml返回的记录数

    本人微信公众号:微软动态CRM专家罗勇 ,回复278或者20180812可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 我们 ...

  3. 亿方云(用电话或者qq沟通是远远不够的,容易忘还不能反复催,最好的方式就是指定一个平台,团队内的人定期查看最新记录)

    作者:城年链接:http://www.zhihu.com/question/20579359/answer/106319200来源:知乎著作权归作者所有,转载请联系作者获得授权. 更新,文字发完后,好 ...

  4. Dynamic CRM 2015学习笔记(6)没有足够的权限 - 您没有访问这些记录的权限。请联系 Microsoft Dynamics CRM 管理员

    我们经常遇到下面这种问题:没有足够的权限 - 您没有访问这些记录的权限.请联系 Microsoft Dynamics CRM 管理员.  下面将详细介绍下如何解决这种问题:进不了CRM系统:进了CRM ...

  5. 查看mysql库中所有表的大小和记录数

    查看mysql库中所有表的大小和记录数 ,), 'MB') as total_size FROM information_schema.TABLES WHERE TABLE_SCHEMA='datab ...

  6. navicat查看mysql数据表记录数不断变化

    在使用navicat进行数据库管理的时候,在查看表对象的时候会发现,每次刷新,数据表的记录数不断变化,尤其是大表. 对于100万的数据经常会显示九十几万,当然通过count(*)出来的数据是正确的. ...

  7. MySQL数据库查看数据表占用空间大小和记录数

    MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHE ...

  8. SQLSERVER 数据库查看各表的记录数

    select   a.name as 表名,max(b.rows) as 记录条数   from   sysobjects   a   ,sysindexes   b       where   a. ...

  9. SQL Server 2008系统信息查询常用命令 查看表大小、记录数等

    1.返回所有数据库信息(数据库名,创建日期,存储路径等).   use master; GO select * from dbo.sysdatabases 2.返回当前数据库所有对象(可根据type字 ...

随机推荐

  1. MySQL--查看内存信息

    常见查看内存信息命令 ## 使用free -m命令查看 free -m ## 使用cat /proc/meminfo 查看 cat /proc/meminfo ## 使用dmidecode命令查看 d ...

  2. NYOJ 483 Nightmare 【广搜】+【无标记】

    版权声明:长风原创 https://blog.csdn.net/u012846486/article/details/31032479 Nightmare 时间限制:1000 ms  |  内存限制: ...

  3. Android学习--------实现增删改查数据库操作以及实现相似微信好友对话管理操作

    版权声明:本文为博主原创文章,转载请注明原文地址.谢谢~ https://blog.csdn.net/u011250851/article/details/26169409 近期的一个实验用到东西挺多 ...

  4. linux shell编程中的数组定义、遍历

    代码如下: 数组定义法1: arr=( ) # 注意是用空格分开,不是逗号!! 数组定义法2: array array[]="a" array[]="b" ar ...

  5. NET设计模式 第二部分 结构性模式(10):组合模式(Composite Pattern)

    组合模式(Composite Pattern) ——.NET设计模式系列之十一 Terrylee,2006年3月 概述 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复 ...

  6. 安装ruby&gem

    #安装yaml#------------------------------------------------------- cd /opt tar zxf yaml-0.1.7.tar.gz ./ ...

  7. oracle 存储过程、游标参考实例

    create or replace procedure INIT_DICT_QUEUECODE(p_queueId int,p_paramType in varchar2,p_queenName in ...

  8. Word中选择中内容后变成C,VMware 虚拟中Ctrl键一直被按住了

    Word中选择中内容后变成C: 解决办法:关闭金山词霸的[划词翻译]功能即可. VMware 虚拟中Ctrl键一直被按住了: 解决办法:关闭金山词霸的[取词翻译]功能即可.

  9. mongodb 安装(官方说明链接)

    这里面有很全的 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 先截个图吧,都是标准的流程,按照操作,是可以安 ...

  10. Python开发经验汇总

    1.工具 (1)编代码用“JetBrains PyCharm”: (2)要想编写的脚本能够直接双击运行,还需要用pyinstaller打包工具: (3)要下载pyinstaller就用Python自带 ...