1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| DECLARE @imp_id Int
SET @imp_id='193'
DECLARE @trans_id Int
SET @trans_id='4'
DECLARE @error_label_fr NVarChar (4000)
SET @error_label_fr='col_c : Erreur à la copie.'
DECLARE @error_label_en NVarChar (4000)
SET @error_label_en='col_c : Error when copying.'
BEGIN TRY
UPDATE transformed
SET transformed.col_c = COALESCE(transformed.col_c, origin.col_c)
FROM x_etl_test_nosys_transformed transformed
INNER JOIN x_etl_test_nosys_origin origin
ON origin.impline_id = transformed.impline_id
WHERE transformed.imp_id = @imp_id
END TRY
BEGIN CATCH
INSERT INTO x_etl_test_nosys_errors
(impline_id, imp_id, trans_id, error_label_fr, error_label_en)
SELECT impline_id, @imp_id, @trans_id, @error_label_fr + ' : ' + ERROR_MESSAGE(), @error_label_en + ' : ' + ERROR_MESSAGE()
FROM (
SELECT RANK() OVER(ORDER BY transformed.impline_id ASC) AS line_number, transformed.impline_id
FROM x_etl_test_nosys_transformed transformed
INNER JOIN x_etl_test_nosys_origin origin
ON origin.impline_id = transformed.impline_id
WHERE transformed.imp_id = @imp_id) AS t
WHERE t.line_number = ERROR_LINE() - 1
END CATCH |
Partager