USP_MARKINGCOLUMN_DELETE

Executes the "Marking Column 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_MARKINGCOLUMN_DELETE
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier
)
as begin
    --delete marking columns if no grades exist and not marked as graded on any course

    if not exists(
        select COURSEGRADINGMARKINGCOLUMN.ID from dbo.COURSEGRADINGMARKINGCOLUMN
        left join dbo.STUDENTMARKINGCOLUMNGRADE on COURSEGRADINGMARKINGCOLUMN.ID = STUDENTMARKINGCOLUMNGRADE.COURSEGRADINGMARKINGCOLUMNID
        where COURSEGRADINGMARKINGCOLUMN.MARKINGCOLUMNID = @ID and
            (COURSEGRADINGMARKINGCOLUMN.GRADED > 0 or STUDENTMARKINGCOLUMNGRADE.ID is not null)) 
    begin
        --Cache current context information 

        declare @CONTEXTCACHE varbinary(128); 
        set @CONTEXTCACHE = CONTEXT_INFO(); 

        --Set CONTEXT_INFO to @CHANGEAGENTID 

        if @CHANGEAGENTID is not null 
          set CONTEXT_INFO @CHANGEAGENTID

        delete from dbo.COURSEGRADINGMARKINGCOLUMN where COURSEGRADINGMARKINGCOLUMN.MARKINGCOLUMNID = @ID

        --Reset CONTEXT_INFO to previous value 

        if not @CONTEXTCACHE is null 
          set CONTEXT_INFO @CONTEXTCACHE;
    end

    -- use the system generated delete routine to allow proper recording of the deleting agent

    exec USP_MARKINGCOLUMN_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
    return 0;

end