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