USP_CUSTOMRATINGS_COUNTFORCONSTITUENT

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@APPUSERID uniqueidentifier IN
@COUNT int INOUT

Definition

Copy


            CREATE procedure dbo.USP_CUSTOMRATINGS_COUNTFORCONSTITUENT
            (
                @CONSTITUENTID uniqueidentifier,
                @APPUSERID as uniqueidentifier,
                @COUNT int output
            )
            as
            begin
                declare @SQL nvarchar(max);
                declare @NEWCOUNT int;
                declare @SQLPARAMS nvarchar(max) = N'@NEWCOUNT int output, @CONSTITUENTID uniqueidentifier';

                declare @ATTRIBUTETABLENAME nvarchar(128);
                declare @IDCOLUMN nvarchar(128);

                declare ATTRIBUTE_CURSOR cursor for
                    select
                        TABLECATALOG.TABLENAME,
                        case ATTRIBUTECATEGORY.ONLYALLOWONEPERRECORD
                            when 1 then N'ID'
                            else N'MODELINGANDPROPENSITYID'
                        end
                    from
                        dbo.ATTRIBUTECATEGORY
                        inner join dbo.ATTRIBUTERECORDTYPE on ATTRIBUTERECORDTYPE.ID = ATTRIBUTECATEGORY.ATTRIBUTERECORDTYPEID
                        inner join dbo.RECORDTYPE on RECORDTYPE.ID = ATTRIBUTERECORDTYPE.RECORDTYPEID
                        inner join dbo.TABLECATALOG on TABLECATALOG.ID = ATTRIBUTECATEGORY.TABLECATALOGID
                    where
                        RECORDTYPE.BASETABLENAME = N'MODELINGANDPROPENSITY'
                        and dbo.UFN_SECURITY_APPUSER_GRANTED_ATTRIBUTECATEGORY_IN_SYSTEMROLE(@APPUSERID,ATTRIBUTECATEGORY.ID) = 1;

                open ATTRIBUTE_CURSOR;
                fetch next from ATTRIBUTE_CURSOR into @ATTRIBUTETABLENAME, @IDCOLUMN;
                while @@FETCH_STATUS = 0
                begin

                    set @SQL = 'select @NEWCOUNT = count(*) from dbo.' + @ATTRIBUTETABLENAME + N' where ' + @IDCOLUMN + N' = @CONSTITUENTID;';
                    exec sp_executesql @SQL, @SQLPARAMS, @NEWCOUNT = @NEWCOUNT output, @CONSTITUENTID = @CONSTITUENTID;
                    set @COUNT = @COUNT + @NEWCOUNT;

                    fetch next from ATTRIBUTE_CURSOR into @ATTRIBUTETABLENAME, @IDCOLUMN;
                end

                close ATTRIBUTE_CURSOR;
                deallocate ATTRIBUTE_CURSOR;
            end