Professional Documents
Culture Documents
GO
/****** Object: StoredProcedure [mart].[usp_update_fact_finance] Script Date:
07/04/2017 13:42:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
BEGIN TRY
--get the target partition range value based on gbu_sk and month_num
SET @target_partition_range_value = (CONVERT([bigint],CONVERT([varchar]
(20),@system_type_sk)+CONVERT([varchar](20),@scenario_sk)+CONVERT([varchar]
(20),@month_num)+CONVERT([varchar](20),@gbu_sk)));
SET @record_count = 0
SET @msg = ''
SET @err_code_default = 16
SET @err_desc = NULL
SET @stored_proc_name = OBJECT_NAME(@@PROCID)
SET @step_nbr = 0
SET @msg = 'Executing the procedure for Target partition range value : ' +
CAST(ISNULL(@target_partition_range_value,'NULL') AS VARCHAR(20))
SET @step_nbr = @step_nbr + 1
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
--BEGIN TRANSACTION
--check if target partition range already exists
SET @msg = 'Checking if target partition range already exists'
SET @step_nbr = @step_nbr + 1
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name =
@package_name
, @task_name = @task_name
, @stored_proc_name =
@stored_proc_name
, @step_nbr = @step_nbr
, @record_count =
@record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
--If non-empty
IF @count_rows > 0
BEGIN
--swap partition out
IF NOT EXISTS (select * from sys.sysindexes
where name = 'csidx_fact_finance_archive')
BEGIN
SET @msg = 'Creating Index on Fact
Finance Archive'
SET @step_nbr = @step_nbr + 1
[primary_sold_to_group_sk],
[sold_to_group_sk],
[gtm_sku_sk],
[sku_region_sk],
[distribution_channel_sk],
[sales_sub_area_sk],
[month_num],
[gbu_sk],
[date_comparison_sk],
[scenario_sk],
[conversion_sk],
[measure_sk],
[currency_sk],
[channel_sub_format_sk],
[system_type_sk],
[partition_col],
[value]
) ON [FG_MART_FACT_DATA]
, @package_name
= @package_name
, @task_name
= @task_name
, @stored_proc_name =
@stored_proc_name
, @step_nbr
= @step_nbr
, @record_count
= @record_count
, @message_type_key
= ''C''
, @log_message
= @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
SELECT @prev_partition_range_value
= CAST(prv.value AS BIGINT)
FROM sys.partition_range_values
prv
JOIN sys.partition_functions pf
ON pf.function_id =
prv.function_id
WHERE pf.name =
@partition_function_name
AND prv.boundary_id = (
SELECT prv.boundary_id
FROM sys.partition_range_values
prv
JOIN sys.partition_functions pf
ON pf.function_id =
prv.function_id
WHERE pf.name =
@partition_function_name
AND prv.value =
@target_partition_range_value) -1
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
IF
OBJECT_ID('mart.ck_newpartition_archive', 'C') IS NOT NULL
BEGIN
, @package_name =
@package_name
, @task_name =
@task_name
, @stored_proc_name =
@stored_proc_name
, @step_nbr =
@step_nbr
, @record_count =
@record_count
, @message_type_key =
''C''
, @log_message =
@msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
IF
@target_partition_range_value IS NOT NULL and @prev_partition_range_value IS NOT
NULL
BEGIN
SET @msg =
'Recreate check constraint on Source table based on the new ranges 1'
SET @step_nbr =
@step_nbr + 1
SET @sql_cmd =
N'ALTER TABLE [mart].[fact_finance_archive] WITH NOCHECK ADD CONSTRAINT
cK_newpartition_archive CHECK (partition_col >= ' +
CAST(@prev_partition_range_value as varchar(50))+' and partition_col <
'+CAST(@target_partition_range_value as varchar(50))+');'
EXECUTE
sp_executesql @sql_cmd
SET @sql =
N'EXECUTE [' + @staging_db_name + '].[interim].[usp_write_log]
@db_load_job_log_id = @db_load_job_log_id
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
EXEC sp_executesql
@sql, N'@db_load_job_log_id INT
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
ALTER TABLE
[mart].[fact_finance_archive] SWITCH TO [mart].[fact_finance_queue] PARTITION
@partition_number;
SET @record_count=
@@ROWCOUNT
SET @sql =
N'EXECUTE [' + @staging_db_name + '].[interim].[usp_write_log]
@db_load_job_log_id = @db_load_job_log_id
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
EXEC sp_executesql
@sql, N'@db_load_job_log_id INT
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
IF
OBJECT_ID('mart.ck_newpartition_archive', 'C') IS NOT NULL
BEGIN
SET @record_count=
@@ROWCOUNT
, @package_name =
@package_name
, @task_name =
@task_name
, @stored_proc_name =
@stored_proc_name
, @step_nbr =
@step_nbr
, @record_count =
@record_count
, @message_type_key =
''C''
, @log_message =
@msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
--find the new partition number in the
main table where the new data will go
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
ELSE --if the partition number does not have any data
BEGIN
--set filegroup for next use
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
BEGIN
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
END
ELSE
BEGIN
--find the partition number from where to drop data from
SET @msg = 'Find the partition number from where to drop
data from'
SET @step_nbr = @step_nbr + 1
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name =
@package_name
, @task_name = @task_name
, @stored_proc_name =
@stored_proc_name
, @step_nbr = @step_nbr
, @record_count =
@record_count
, @message_type_key = ''C''
, @log_message = @msg'
EXEC sp_executesql @sql,
N'@db_load_job_log_id INT
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
EXEC sp_executesql @sql,
N'@db_load_job_log_id INT
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
END
--delete existing data
SET @msg = 'Switching data from [mart].[fact_finance_queue]
to [mart].[fact_finance_archive]'
SET @step_nbr = @step_nbr + 1
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@package_name VARCHAR(100)
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
, @package_name = @package_name
, @task_name = @task_name
, @stored_proc_name = @stored_proc_name
, @step_nbr = @step_nbr
, @record_count = @record_count
, @message_type_key = ''C''
, @log_message = @msg'
,@task_name VARCHAR(100)
,@stored_proc_name VARCHAR(100)
,@step_nbr SMALLINT
,@record_count INT
,@msg VARCHAR(1000)'
,@db_load_job_log_id = @db_load_job_log_id
,@package_name = @package_name
,@task_name = @task_name
,@stored_proc_name = @stored_proc_name
,@step_nbr = @step_nbr
,@record_count = @record_count
,@msg = @msg
END
BEGIN
, @package_name =
@package_name
, @task_name =
@task_name
, @stored_proc_name =
@stored_proc_name
, @step_nbr =
@step_nbr
, @record_count =
@record_count
, @message_type_key =
''C''
, @log_message =
@msg'
END
--COMMIT TRANSACTION
SET @result = @success
END TRY
BEGIN CATCH
END