USP_DATALIST_BUSINESSPROCESSEXPORTMULTIPLEPREVIEW
Displays a list of distinct values from a column and record counts for each. This represents all files to be downloaded for a business process export.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BUSINESSPROCESSSTATUSID | uniqueidentifier | IN | Business process status ID |
@TABLEKEY | nvarchar(50) | IN | Table key |
@COLUMNNAME | nvarchar(255) | IN | Column name |
@MAXROWS | int | IN | Input parameter indicating the maximum number of rows to return. |
Definition
Copy
CREATE procedure dbo.[USP_DATALIST_BUSINESSPROCESSEXPORTMULTIPLEPREVIEW]
(
@BUSINESSPROCESSSTATUSID uniqueidentifier,
@TABLEKEY nvarchar(50),
@COLUMNNAME nvarchar(255),
@MAXROWS int = 500
)
as
set nocount on;
declare @RETTABLE table([VALUE] nvarchar(255), [RECORDS] int);
if len(@BUSINESSPROCESSSTATUSID) > 0 and len(@TABLEKEY) > 0 and len(@COLUMNNAME) > 0
begin
declare @TABLENAME nvarchar(128);
declare @SQL nvarchar(max);
select @TABLENAME = [TABLENAME]
from dbo.[BUSINESSPROCESSOUTPUT]
where [BUSINESSPROCESSSTATUSID] = @BUSINESSPROCESSSTATUSID
and upper([TABLEKEY]) = upper(@TABLEKEY);
--Check if the tablename and columnname exist first...
if exists(select 1 from [INFORMATION_SCHEMA].[COLUMNS] where [TABLE_SCHEMA] = 'dbo' and [TABLE_NAME] = @TABLENAME and [COLUMN_NAME] = @COLUMNNAME)
begin
--Get the distinct number of files to be downloaded...
set @SQL = 'select top(' + cast(@MAXROWS as nvarchar(10)) + ') isnull(cast([' + @COLUMNNAME + '] as nvarchar(255)),''''), count(*)' + char(13) +
'from dbo.[' + @TABLENAME + ']' + char(13) +
'group by [' + @COLUMNNAME + ']' + char(13) +
'order by [' + @COLUMNNAME + ']';
insert into @RETTABLE
exec (@SQL);
end
end
select [VALUE], [RECORDS]
from @RETTABLE;
return 0;