Меня смущает строка кода.
IF @StatusCode = '71' BEGIN SET @VarA = Isnull(@VarC, @VarD)
Каким именно будет результат для VarA в обеих ситуациях VarC равен нулю и не равен?
Функция ISNULL () позволяет вам возвращать альтернативное значение, когда выражение равно NULL.
, если @VARC не равно нулю, @VarA = @VARC.
@VARC
@VarA = @VARC
Если @VARC равно нулю,@VarA = @VarD.
@VarA = @VarD
Эти два кода эквивалентны
SET @VarA = Isnull(@VarC, @VarD)
и
if @VarC is not null set @VarA = @VarC else set @VarA = @VarD
ISNUL является альтернативой для установки значений, которые являются нулевыми для альтернативного значения, как в вашем случае Isnull(@VarC, @VarD), если @VarC равен нулю, тогда значение будет @var_d иначе @VarC непосредственно
Isnull(@VarC, @VarD)