我们正在使用SQL Server 2012.我们有一个脚本,它执行多个存储过程并由SQL Server代理运行。直到上个月发生错误时,'Try-Catch'将记录错误并继续处理下一个存储过程。
现在遇到错误时,会记录错误,但是,SQL Agent会在此时中止错误。
我们希望在遇到错误时继续处理,因为所有存储过程都是独立的。
以下是代码片段:
begin try
INSERT rs_tracking
SELECT 'RS_Build_Time_Tracker', GETDATE(), Null
EXECUTE [EDW].[dbo].[Build_BH_RS_Time_Tracker_SRC]
SELECT NULL;
end try
begin catch
INSERT rs_tracking
SELECT 'RS_Build_Time_Tracker',GETDATE(), ERROR_Message();
EXECUTE [EDW].[dbo].[Build_BH_RS_Time_Tracker_SRC]
end catch
begin try
INSERT rs_tracking
SELECT 'Build_Client_Rank1',GETDATE(), Null
EXECUTE [EDW].[dbo].[Build_BH_Client_Rank1_SRC]
SELECT NULL;
end try
begin catch
INSERT rs_tracking
SELECT 'Build_Client_Rank1',GETDATE(), ERROR_Message();
EXECUTE [EDW].[dbo].[Build_BH_Client_Rank1_SRC]
end catch
begin try
INSERT rs_tracking
SELECT 'Build_Client_Rank2',GETDATE(), Null
EXECUTE [EDW].[dbo].[Build_BH_Client_Rank2_SRC]
SELECT NULL;
end try
begin catch
INSERT rs_tracking
SELECT 'Build_Client_Rank2',GETDATE(), ERROR_Message();
EXECUTE [EDW].[dbo].[Build_BH_Client_Rank2_SRC]
end catch