USP_BBDW_SELECTION_GETVALUES

Parameters

Parameter Parameter Type Mode Description
@DBTABLENAME nvarchar(128) IN
@PRIMARYKEYTYPENAME nvarchar(128) IN

Definition

Copy


CREATE procedure [dbo].[USP_BBDW_SELECTION_GETVALUES](
  @DBTABLENAME nvarchar(128), 
  @PRIMARYKEYTYPENAME nvarchar(128)

as 
  --This NOP is required for the SSIS development environment to be able to detect the result set column metadata.

  if 1=null
    select 
      newid() [ID_UNIQUEIDENTIFIER],
      cast('' as nvarchar(max)) [ID_NVARCHAR],
      cast( 0 as int) [ID_INT], 
      cast( 0 as bigint) [ID_BIGINT]

  declare @SQL nvarchar(max) = '';

  if @PRIMARYKEYTYPENAME = 'uniqueidentifier'
  begin  
    set @sql =  'select ' + char(13) +
                '  [ID] [ID_UNIQUEIDENTIFIER],' + char(13) +
                '  cast(null as nvarchar(max)) [ID_NVARCHAR],' + char(13) +
                '  null [ID_INT],' + char(13) +
                '  null [ID_BIGINT]' + char(13) + 
                'from dbo.[' + @DBTABLENAME + '];';
  end
  else if @PRIMARYKEYTYPENAME like 'nvarchar%'
  begin  
    set @sql =  'select ' + char(13) +
                '  null [ID_UNIQUEIDENTIFIER],' + char(13) +
                '  cast([ID] as nvarchar(max)) [ID_NVARCHAR],' + char(13) +
                '  null [ID_INT],' + char(13) +
                '  null [ID_BIGINT]' + char(13) + 
                'from dbo.[' + @DBTABLENAME + '];';
  end
  else if @PRIMARYKEYTYPENAME = 'int' or @PRIMARYKEYTYPENAME = 'integer'
  begin  
    set @sql =  'select ' + char(13) +
                '  null [ID_UNIQUEIDENTIFIER],' + char(13) +
                '  cast(null as nvarchar(max)) [ID_NVARCHAR],' + char(13) +
                '  [ID] [ID_INT],' + char(13) +
                '  null [ID_BIGINT]' + char(13) + 
                'from dbo.[' + @DBTABLENAME + '];';
  end
  else if @PRIMARYKEYTYPENAME = 'bigint'
  begin  
    set @sql =  'select ' + char(13) +
                '  null [ID_UNIQUEIDENTIFIER],' + char(13) +
                '  cast(null as nvarchar(max)) [ID_NVARCHAR],' + char(13) +
                '  null [ID_INT],' + char(13) +
                '  [ID] [ID_BIGINT]' + char(13) + 
                'from dbo.[' + @DBTABLENAME + '];';
  end 

  exec sp_executesql @SQL;