USP_AUCTIONITEMBATCH_DELETE

Executes the "Auction Item Batch Row: 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_AUCTIONITEMBATCH_DELETE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier
                    )
                    as
                    set nocount on;

                    declare @CONTEXTCACHE varbinary(128);

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

                        set @CONTEXTCACHE = CONTEXT_INFO();

                        if not @CHANGEAGENTID is null
                            set CONTEXT_INFO @CHANGEAGENTID;

                        declare @DELETECONSTITUENTS table
                        (
                            CONSTITUENTID uniqueidentifier
                        );

                        insert into @DELETECONSTITUENTS(CONSTITUENTID)
                            select BATCHAUCTIONITEMCONSTITUENT.ID
                            from dbo.BATCHAUCTIONITEMCONSTITUENT
                            where BATCHAUCTIONITEMCONSTITUENT.ID in 
                                (
                                    select 
                                        [AUCTIONITEMCONSTITUENT].ID
                                    from dbo.BATCHAUCTIONITEMCONSTITUENT as [AUCTIONITEMCONSTITUENT] 
                                    inner join dbo.BATCHAUCTIONITEM on BATCHAUCTIONITEM.CONSTITUENTID = [AUCTIONITEMCONSTITUENT].ID
                                    where BATCHAUCTIONITEM.ID = @ID 
                                )
                                and not BATCHAUCTIONITEMCONSTITUENT.ID in 
                                (
                                    select 
                                        [AUCTIONITEMCONSTITUENT].ID
                                    from dbo.BATCHAUCTIONITEMCONSTITUENT as [AUCTIONITEMCONSTITUENT] 
                                    inner join dbo.BATCHAUCTIONITEM on BATCHAUCTIONITEM.CONSTITUENTID = [AUCTIONITEMCONSTITUENT].ID
                                    where BATCHAUCTIONITEM.ID != @ID 
                                )

                        delete dbo.BATCHAUCTIONITEMCONSTITUENTRELATION 
                        where CONSTITUENTID in (select CONSTITUENTID from @DELETECONSTITUENTS)
                            or RELATIONID in (select CONSTITUENTID from @DELETECONSTITUENTS);

                        delete dbo.BATCHAUCTIONITEMCONSTITUENTGROUPMEMBER
                        where GROUPID in (select CONSTITUENTID from @DELETECONSTITUENTS)
                            or MEMBERID in (select CONSTITUENTID from @DELETECONSTITUENTS);

                        delete dbo.BATCHAUCTIONITEMCONSTITUENT
                        where ID in (select CONSTITUENTID from @DELETECONSTITUENTS);

                        delete dbo.BATCHAUCTIONITEM where ID = @ID;

                        if not @CONTEXTCACHE is null
                            set CONTEXT_INFO @CONTEXTCACHE;
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR;

                        if not @CONTEXTCACHE is null
                            set CONTEXT_INFO @CONTEXTCACHE;

                        return 1;
                    end catch

                    return 0;