USP_BBNC_TABLEENTRY_GETLIST

Retrieves a list of specified code table entries for Blackbaud Internet Solutions.

Parameters

Parameter Parameter Type Mode Description
@TABLENAME nvarchar(128) IN
@INCLUDEINACTIVE bit IN

Definition

Copy


            CREATE procedure [dbo].[USP_BBNC_TABLEENTRY_GETLIST](@TABLENAME sysname, @INCLUDEINACTIVE bit)
            with execute as owner
            as
                set nocount on;

                declare @SQL nvarchar(max);
                declare @MAPPEDID int;
                declare @MATCHES int;
                declare @PARAMS nvarchar(40);
                declare @CODETABLECATALOGID uniqueidentifier;
                select 
                    @CODETABLECATALOGID = ID
                from
                    dbo.CODETABLECATALOG
                where
                    CODETABLECATALOG.DBTABLENAME = @TABLENAME;

                if @CODETABLECATALOGID is null
                    begin
                        declare @ERR nvarchar(max);
                        if @TABLENAME is not null
                            set @ERR = 'Unknown code table (' + @TABLENAME + ') specified.'
                        else
                            set @ERR = 'Unknown code table specified.';

                        raiserror (@ERR,13,1);
                        return 0;
                    end

                select top 1 @MAPPEDID = ID from dbo.BBNCCODETABLEIDMAP where CODETABLECATALOGID = @CODETABLECATALOGID;
                set @MATCHES = 0;
                if @MAPPEDID is null
                    if @TABLENAME is not null
                        begin
                            set @SQL = N'select @MATCHES = count(*) from dbo.' + @TABLENAME;
                            set @PARAMS = N'@MATCHES int output';

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

                if @MATCHES > 0
                    begin
                        if @TABLENAME is not null
                            set @ERR = 'The code table (' + @TABLENAME + ') has not been mapped.'
                        else
                            set @ERR = 'This code table has not been mapped.';

                        raiserror (@ERR,13,1);
                        return 0;
                    end

                set @SQL = 'select ' + @TABLENAME + '.ID, BBNCCODETABLEIDMAP.ID as BBNCID, ' + @TABLENAME + '.DESCRIPTION ';
                set @SQL = @SQL + 'from dbo.' + @TABLENAME + ' ';
                set @SQL = @SQL + 'inner join dbo.BBNCCODETABLEIDMAP on ' + @TABLENAME + '.ID = BBNCCODETABLEIDMAP.TABLEENTRYID ';
                set @SQL = @SQL + 'and BBNCCODETABLEIDMAP.CODETABLECATALOGID = ''' + convert(nvarchar(36), @CODETABLECATALOGID) + ''' ';

                if @INCLUDEINACTIVE = 0
                    set @SQL = @SQL + 'where ' + @TABLENAME + '.ACTIVE = 1 ';

                if dbo.UFN_GETLISTSORTMETHOD(@TABLENAME) = 0
                        set @SQL = @SQL + 'order by ' + @TABLENAME + '.DESCRIPTION'
                else
                        set @SQL = @SQL + 'order by ' + @TABLENAME + '.SEQUENCE'

                exec sp_executesql @SQL;