add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
DROP PROC IF EXISTS firstproc;
DROP PROC IF EXISTS secondproc;
DROP TABLE IF EXISTS errortable;
DROP TABLE IF EXISTS mytable;

CREATE TABLE mytable (
A DECIMAL
,B DECIMAL
)

INSERT INTO mytable
VALUES (
1
,1
)
,(
1
,0
)


2 rows affected
CREATE TABLE ErrorTable
(procname NVARCHAR(255));


CREATE PROCEDURE [dbo].[FirstProc]
AS
BEGIN
BEGIN TRY
SELECT A / B
FROM mytable;
END TRY

BEGIN CATCH
INSERT Errortable VALUES (OBJECT_NAME(@@PROCID));
THROW;
END CATCH
END

CREATE PROCEDURE [dbo].[SecondProc]
AS
BEGIN
BEGIN TRY
CREATE TABLE #mytable
(C DECIMAL )

INSERT INTO #mytable
EXEC FirstProc
END TRY

BEGIN CATCH
INSERT Errortable VALUES (OBJECT_NAME(@@PROCID));
THROW;
END CATCH
END


EXEC secondproc;



Msg 8134 Level 16 State 1 Line 6
Divide by zero error encountered.
SELECT * FROM errortable
procname
SecondProc
DROP PROC IF EXISTS firstproc;
DROP PROC IF EXISTS secondproc;
DROP TABLE IF EXISTS mytable;
DROP TABLE IF EXISTS errortable;

CREATE TABLE mytable (
A DECIMAL
,B DECIMAL
)

INSERT INTO mytable
VALUES (
1
,1
)
,(
1
,0
)

2 rows affected
CREATE TABLE ErrorTable
(procname NVARCHAR(255));

CREATE PROCEDURE [dbo].[FirstProc]
AS
BEGIN
BEGIN TRY
SELECT A / B
FROM mytable;
END TRY

BEGIN CATCH
INSERT Errortable VALUES (OBJECT_NAME(@@PROCID));
THROW;
END CATCH
END


CREATE PROCEDURE [dbo].[SecondProc]
AS
BEGIN
BEGIN TRY
CREATE TABLE #mytable
(C DECIMAL )

--INSERT INTO #mytable
EXEC FirstProc
END TRY

BEGIN CATCH
INSERT Errortable VALUES (OBJECT_NAME(@@PROCID));
THROW;
END CATCH
END


EXEC secondproc;



(No column name)
1.0000000000000000000
Msg 8134 Level 16 State 1 Line 6
Divide by zero error encountered.
SELECT * FROM errortable;
procname
FirstProc
SecondProc