zoukankan      html  css  js  c++  java
  • 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,所以不好写成 表值函数.暂时只能这样了.

  • 相关阅读:
    20150805-20150807 tradeDate-----python
    nutz_web应用中主页跳转到登录页面的方式
    nutz中实现登录验证
    C#之继承
    C#中Page执行顺序:OnPreInit()、OnInit()……
    利用堆栈实现走迷宫算法
    对数组结构体按照K值翻转
    实现多项式的加法和乘法运算
    两个有序链表的合并
    队列的比较和存储方式
  • 原文地址:https://www.cnblogs.com/BinBinGo/p/6392795.html
Copyright © 2011-2022 走看看