В настоящее время у меня есть два вызова хранимой процедуры с различными параметрами в зависимости от оператора if. Есть ли способ поместить выражение case перед параметром для включения / не включения на основе этого случая вместо использования оператора if и двух разных вызовов?
Вот мой текущий код:
if (@SubmissionStatus = 'REJ' or @SubmissionStatus = 'ACP') and (@LoadUsage = '|CreateBatch|')
begin
--when current submission is 'OPT' we change it to 'REJ' before creating a new 'CRT' submission
exec @internal = ii_UpdateClaimSubmission
@Usage = @LoadUsage,
@UserId = @UserId,
@ClaimSubmissionId = @OldClaimSubmissionId,
@SubmissionStatus = @OldSubmissionStatus,
--@ExternalBatchNumber = @ExternalBatchNumber,
--@FrequencyType = @FrequencyType,
@ProcessingStatus = @ProcessingStatus,
@TechnicalErrorCode = @RejectReasonCode,
@TechnicalErrorDescription = @RejectDescription,
@TransactionAcknowledgementCode = @TransactionAcknowledgementCode,
@ResubmissionNumber = @ResubmissionNumber,
@DoNotSendReason = @DoNotSendReason,
@DebugFlag = @DebugFlag,
@InputAdjustmentVersion = @Version,
@ErrorMsg = @UserMsg out
end
else
begin
-- we are updating an existing submission to potentially close it out, and not creating a new submission
exec @internal = ii_UpdateClaimSubmission
@Usage = @LoadUsage,
@UserId = @UserId,
@ClaimSubmissionId = @OldClaimSubmissionId,
@ExternalBatchNumber = @ExternalBatchNumber,
@FrequencyType = @FrequencyType,
@SubmissionStatus = @SubmissionStatus,
@ProcessingStatus = @ProcessingStatus,
@TechnicalErrorCode = @RejectReasonCode,
@TechnicalErrorDescription = @RejectDescription,
@TransactionAcknowledgementCode = @TransactionAcknowledgementCode,
@ResubmissionNumber = @ResubmissionNumber,
@DoNotSendReason = @DoNotSendReason,
@DebugFlag = @DebugFlag,
@ErrorMsg = @UserMsg out
В одном списке параметров у меня есть дополнительные параметры (@ExternalBatchNumber, @FrequencyType, @Version), а в другом - нет.