Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
964616beec | |||
326784e18c |
@ -2,6 +2,10 @@ CREATE OR ALTER PROCEDURE pricing.rebuild_pricelist
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON; -- auto-rollback on most errors
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRAN;
|
||||
|
||||
DROP TABLE pricing.pricelist_ranged;
|
||||
|
||||
@ -202,4 +206,21 @@ FROM
|
||||
ranged;
|
||||
|
||||
--CREATE INDEX pricelist_ranged_idx ON pricing.pricelist_ranged(jcpart, jcplcd, vb_from, vb_to);
|
||||
|
||||
COMMIT TRAN;
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
-- Ensure transaction is rolled back
|
||||
IF XACT_STATE() <> 0
|
||||
BEGIN
|
||||
ROLLBACK TRAN;
|
||||
END
|
||||
|
||||
IF OBJECT_ID('tempdb..#anchor') IS NOT NULL DROP TABLE #anchor;
|
||||
IF OBJECT_ID('tempdb..#g') IS NOT NULL DROP TABLE #g;
|
||||
IF OBJECT_ID('tempdb..#uom') IS NOT NULL DROP TABLE #uom;
|
||||
|
||||
-- Re-throw original error
|
||||
THROW;
|
||||
END CATCH;
|
||||
END;
|
@ -2,6 +2,10 @@ CREATE OR ALTER PROCEDURE pricing.rebuild_targets
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON; -- auto-rollback on most runtime errors
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRAN;
|
||||
|
||||
DELETE FROM pricing.target_prices;
|
||||
|
||||
@ -25,4 +29,14 @@ SELECT
|
||||
FROM
|
||||
usmidsap02.ubm.pricequote.target_prices_view;
|
||||
|
||||
END;
|
||||
COMMIT TRAN;
|
||||
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF XACT_STATE() <> 0
|
||||
ROLLBACK TRAN;
|
||||
|
||||
-- Rethrow original error
|
||||
THROW;
|
||||
END CATCH;
|
||||
END
|
||||
|
66
rebuild/sync_external.ms.sql
Normal file
66
rebuild/sync_external.ms.sql
Normal file
@ -0,0 +1,66 @@
|
||||
CREATE OR ALTER PROCEDURE pricing.sync_external
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON; -- causes runtime errors to auto-rollback
|
||||
|
||||
BEGIN TRY
|
||||
|
||||
BEGIN TRAN;
|
||||
-- Refresh pricing.ffcret
|
||||
TRUNCATE TABLE pricing.ffcret;
|
||||
INSERT INTO pricing.ffcret
|
||||
SELECT *
|
||||
FROM fanalysis.rlarp.ffcret;
|
||||
|
||||
-- Refresh pricing.ffterr
|
||||
TRUNCATE TABLE pricing.ffterr;
|
||||
INSERT INTO pricing.ffterr
|
||||
SELECT *
|
||||
FROM fanalysis.rlarp.ffterr;
|
||||
|
||||
-- Refresh pricing.gld
|
||||
TRUNCATE TABLE pricing.gld;
|
||||
INSERT INTO pricing.gld
|
||||
SELECT *
|
||||
FROM fanalysis.rlarp.gld;
|
||||
|
||||
-- Refresh pricing.qrh
|
||||
TRUNCATE TABLE pricing.qrh;
|
||||
INSERT INTO pricing.qrh
|
||||
SELECT *
|
||||
FROM fanalysis.rlarp.qrh;
|
||||
|
||||
-- Refresh pricing.sach
|
||||
TRUNCATE TABLE pricing.sach;
|
||||
INSERT INTO pricing.sach
|
||||
SELECT *
|
||||
FROM fanalysis.lgdat.sach;
|
||||
|
||||
COMMIT TRAN;
|
||||
|
||||
-- rebuild last price
|
||||
EXEC pricing.rebuild_lastprice;
|
||||
|
||||
-- rebuild ranged price list
|
||||
EXEC pricing.rebuild_pricelist;
|
||||
|
||||
-- rebuild target prices
|
||||
EXEC pricing.rebuild_targets;
|
||||
|
||||
END TRY
|
||||
|
||||
BEGIN CATCH
|
||||
-- Rollback if any error
|
||||
IF XACT_STATE() <> 0
|
||||
ROLLBACK TRAN;
|
||||
|
||||
-- rethrow original error with context
|
||||
DECLARE @ErrMsg NVARCHAR(4000) = ERROR_MESSAGE();
|
||||
DECLARE @ErrSec NVARCHAR(200) = ERROR_SEVERITY();
|
||||
DECLARE @ErrState INT = ERROR_STATE();
|
||||
RAISERROR('refresh_pricing_tables failed: %s', 16, 1, @ErrMsg);
|
||||
THROW; -- rethrow original error for callers to handle
|
||||
END CATCH;
|
||||
|
||||
END
|
Loading…
Reference in New Issue
Block a user