Exception handling in stored procedure for logging and continues running of the sp even after a error.
CREATE PROCEDURE
@TypeData AS [DataTable] READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT IDENTITY(INT, 1, 1) AS RowIndex, ... INTO #TempDataTable FROM @TypeData
--Temp table to log exceptions
CREATE TABLE #TempException(ExceptionMessage VARCHAR(2000));
DECLARE @MaxRow INT, @RowID INT
--Set maxrow and rowid
SET @MaxRow = (SELECT ISNULL(COUNT(1), 0) FROM #TempDataTable)
SET @RowID = 1
WHILE @RowID <= @MaxRow
BEGIN
--your logic
BEGIN TRY
--your logic
SET @RowID = @RowID + 1
END TRY
BEGIN CATCH
SET @RowID = @RowID + 1
INSERT INTO #TempException (ExceptionMessage) VALUES(ERROR_MESSAGE());
END CATCH
END
--Return Error table for logging
SELECT * FROM #TempException;
DROP TABLE #TempException;
END
Comments