У меня есть хранимая процедура, которая создает запись в таблице.
INSERT INTO tbl_CaseDetails
(
Case_Id
, Client_Id
, Client_HO_Id
, Client_Case_Ref
, Client_Cust_Ref
, Access_Id
, Product_Id
, Status
)
Values(
@CaseId
, @Client_Id
, isnull(@Head_Office_Id,@Client_Id)
, @Client_Case_Reference
, @Client_Customer_Reference
, @Access_Id
, @Product_Id
, 'pre-instr')
Но в триггере статус отображается как нулевой, и вставка не выполняется, так как у меня есть проверка на нулевой статус.
If Update(Status)
Begin
If @Status Is Null
Exec [usp_CaseWithNullStatus] @Case_Id
Begin
RaisError ( 'Cannot insert null status'
,16
,16 )
End
End
Есть идеи, почему это происходит? Sp
Разве ваш внутренний начальный / конечный блок не должен быть установлен таким образом:
If Update(Status)
Begin
If @Status Is Null
Begin -- <---------- block starts here
Exec [usp_CaseWithNullStatus] @Case_Id
RaisError ( 'Cannot insert null status'
,16
,16 )
End
End
В вашем коде ошибка будет всегда вызывается, потому что строка, следующая за вашим оператором if, считается блоком выполнения, а следующая строка будет вызываться, даже если оператор if неверен.