USP_MKTFINDERFILEIMPORTPROCESS_ROLLBACKIMPORT

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

Parameters

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

Definition

Copy


create procedure dbo.[USP_MKTFINDERFILEIMPORTPROCESS_ROLLBACKIMPORT]
(
  @FINDERFILEID 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 [MKTFINDERFILEIMPORTPROCESS]
    where [ID] = @FINDERFILEID;


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

    set @FINDERFILETABLE = dbo.[UFN_MKTFINDERFILE_BUILDTABLENAME](@SEGMENTATIONID);

    --Remove records from finder file table and drop table if it is empty

    if exists(select 1 from INFORMATION_SCHEMA.TABLES where (TABLE_SCHEMA = 'dbo') and (TABLE_NAME = @FINDERFILETABLE))
    begin
      set @SQL = 'delete from [dbo].[' + @FINDERFILETABLE + '] where [FINDERFILEID] = @FINDERFILEID';
      exec sp_executesql @SQL,N'@FINDERFILEID uniqueidentifier', @FINDERFILEID=@FINDERFILEID;

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

  end try

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

  return 0;