USP_MKTCONSTITUENTFILEIMPORTPROCESS_ROLLBACKIMPORT

Rollback all the changes made while importing a constituent file, if the import fails.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTFILEIMPORTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


create procedure dbo.[USP_MKTCONSTITUENTFILEIMPORTPROCESS_ROLLBACKIMPORT]
(
  @CONSTITUENTFILEIMPORTID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null
)
as
  set nocount on;

  declare @SEGMENTATIONID uniqueidentifier;

  begin try
    if @CHANGEAGENTID is null  
      exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

    select
      @SEGMENTATIONID = [SEGMENTATIONID]
    from [MKTCONSTITUENTFILEIMPORTPROCESS]
    where [ID] = @CONSTITUENTFILEIMPORTID;

    /**********************************/
    /* Delete the imported records... */
    /**********************************/
    declare @SQL nvarchar(max);
    declare @CONSTITUENTFILETABLE nvarchar(256);

    set @CONSTITUENTFILETABLE = dbo.[UFN_MKTCONSTITUENTFILEIMPORT_BUILDTABLENAME](@SEGMENTATIONID);

    /* Remove records from constituent file table and drop table if it is empty */
    if exists(select 1 from INFORMATION_SCHEMA.TABLES where (TABLE_SCHEMA = 'dbo') and (TABLE_NAME = @CONSTITUENTFILETABLE))
    begin
      set @SQL = 'delete from [dbo].[' + @CONSTITUENTFILETABLE + '] where [CONSTITUENTFILEIMPORTID] = @CONSTITUENTFILEIMPORTID';
      exec sp_executesql @SQL,N'@CONSTITUENTFILEIMPORTID uniqueidentifier', @CONSTITUENTFILEIMPORTID = @CONSTITUENTFILEIMPORTID;

      set @SQL = 'if not exists(select 1 from [dbo].[' + @CONSTITUENTFILETABLE + ']) drop table [dbo].[' + @CONSTITUENTFILETABLE + '];'
      exec sp_executesql @SQL
    end

  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;