USP_IMPORTSELECTIONPROCESS_DELETE

Executes the "Import Selection: Delete" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.

Definition

Copy


CREATE procedure dbo.[USP_IMPORTSELECTIONPROCESS_DELETE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier
)
as
  set nocount on;

  declare @IDSETREGISTERID uniqueidentifier;
  declare @IDSETTABLENAME nvarchar(128);

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

  select
    @IDSETREGISTERID = [IDSETREGISTER].[ID],
    @IDSETTABLENAME = [IDSETREGISTER].[DBOBJECTNAME]
  from dbo.[IMPORTSELECTIONPROCESS]
  left join dbo.[IDSETREGISTER] on [IDSETREGISTER].[ID] = [IMPORTSELECTIONPROCESS].[IDSETREGISTERID]
  where [IMPORTSELECTIONPROCESS].[ID] = @ID;    

  --Check if the selection is in use by an ad-hoc query...

  if exists(select 1 from dbo.[ADHOCQUERY] where dbo.[UFN_ADHOCQUERY_IDSETINUSE](@IDSETREGISTERID, [QUERYDEFINITIONXML]) = 1)
    begin
      raiserror('BBERR_IDSET_INUSEBYADHOCQUERY', 4, 44);
      raiserror('Selection cannot be deleted because it is in use by an ad-hoc query.', 16, 1);
      return 1;
    end

  --Delete the import selection process record...

  exec dbo.[USP_IMPORTSELECTIONPROCESS_DELETEBYID_WITHCHANGEAGENTID] @ID, @CHANGEAGENTID;

  --Delete the IDSet afterwards because of foreign key constraints...

  exec dbo.[USP_IDSET_DELETESTATICTABLE] @IDSETTABLENAME;
  exec dbo.[USP_IDSETREGISTER_DELETEBYID_WITHCHANGEAGENTID] @IDSETREGISTERID, @CHANGEAGENTID;

  return 0;