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 |