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;