USP_BBNC_CONSTITUENTINSELECTION

Determines whether or not the specified constituent exists within the specified selection for BBNC.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID int IN
@QUERYID int IN

Definition

Copy


            CREATE procedure [dbo].[USP_BBNC_CONSTITUENTINSELECTION](@CONSTITUENTID int, @QUERYID int)
            with execute as owner
        as
        begin
            declare @OBJECTNAME sysname;
            declare @OBJECTTYPE tinyint;
            declare @MATCHES int;
            declare @FOUND bit;
            declare @SQL nvarchar(max);
            declare @PARAMS nvarchar(70);
            declare @CONSTITGUID uniqueidentifier;

            set nocount on;

            set @FOUND = 0;

            select 
                @OBJECTTYPE = IDSETREGISTER.OBJECTTYPE, @OBJECTNAME = IDSETREGISTER.DBOBJECTNAME
            from 
                dbo.IDSETREGISTER
            inner join 
                dbo.BBNCIDSETIDMAP on IDSETREGISTER.ID = BBNCIDSETIDMAP.IDSETREGISTERID
            where
                BBNCIDSETIDMAP.ID = @QUERYID;

            select @CONSTITGUID = ID from dbo.CONSTITUENT where SEQUENCEID = @CONSTITUENTID;

            if coalesce(@OBJECTTYPE,0) >= 0 and len(coalesce(@OBJECTNAME,'')) > 0
                begin
                    if @OBJECTTYPE = 1
                        set @SQL = N'select @MATCHES = count(*) from dbo.' + @OBJECTNAME + N'()';
                    else
                        set @SQL = N'select @MATCHES = count(*) from dbo.' + @OBJECTNAME;

                    set @SQL = @SQL + N' where ID = @CONSTITGUID';

                    set @PARAMS = N'@CONSTITGUID uniqueidentifier, @MATCHES int output';

                    exec sp_executesql @SQL, @PARAMS, @CONSTITGUID = @CONSTITGUID, @MATCHES = @MATCHES output;

                    if @MATCHES > 0
                        set @FOUND = 1;
                end

                else
                    set @FOUND = 0;

                select @FOUND as MATCHFOUND;
        end