Код: Выделить всё
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
...