• CRM 权限内可查看的记录数


    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,所以不好写成 表值函数.暂时只能这样了.

  • 相关阅读:
    PAT乙级-1037. 在霍格沃茨找零钱(20)
    PAT乙级-1041. 考试座位号(15)
    PAT乙级-1047. 编程团体赛(20)
    css3 实现 背景图片显示
    块级元素与行内元素(内联元素)的区别和联系
    JS变量
    导航条菜单的制作 滑动缓慢
    HTML中Id和Name的区别
    全面理解Javascript中Function对象的属性和方法
    理解盒子模型
  • 原文地址:https://www.cnblogs.com/BinBinGo/p/6392795.html
Copyright © 2020-2023  润新知