Последовательные ошибки в триггере
Добавлено: 14 Март 2007, 4:30
В триггере вызываются несколько ХП одна за одной:
в ХП есть проверка на ошибки, выполняется след код:
Судя по поведению программы, если ошибка появится на первом вызове ХП, то дальнейшее
выполнение триггера прервется, так ли это?
Или надо проверять ошибки после вызова каждой ХП, т.е. делать так:
Код: Выделить всё
EXEC CS_CountCurrentBalance @GoodsID,@StoreID,1,@QuantityI
EXEC CS_CountCurrentBalance @GoodsID,@ParentStoreID,1,@QuantityD
EXEC CS_CountCurrentBalance @GoodsID,@ParentStoreID,-1,@QuantityI
EXEC CS_CountCurrentBalance @GoodsID,@StoreID,-1,@QuantityD
Код: Выделить всё
IF ОШИБКА
BEGIN
ROLLBACK TRAN
RAISERROR('Отрицательные остатки!', 16, 1)
END
выполнение триггера прервется, так ли это?
Или надо проверять ошибки после вызова каждой ХП, т.е. делать так:
Код: Выделить всё
EXEC CS_CountCurrentBalance @GoodsID,@StoreID,1,@QuantityI
IF @ERROR<>0
EXEC CS_CountCurrentBalance @GoodsID,@ParentStoreID,1,@QuantityD
...