触发器中的CATCH错误

时间:2016-09-22 10:35:19

标签: sql-server

我有这个插入触发器设置

DECLARE @clid varchar(80)
SET @clid = (SELECT clid FROM inserted)
EXEC Track.dbo.InsertCall @clid

由于某种原因,这有时会失败,这会停止声明触发器的表上的插入。

即使触发因任何原因失败,我也需要插入。

我试过了:

DECLARE @clid varchar(80)
SET @clid = (SELECT clid FROM inserted)

BEGIN TRY
EXEC Track.dbo.InsertCall @clid
END TRY
BEGIN CATCH
INSERT INTO errors(errornumber,errorseverity,errorstate,errorprocedure,errorline,errormessage) VALUES (ERROR_NUMBER(),ERROR_SEVERITY(), ERROR_STATE(), ERROR_PROCEDURE(), ERROR_LINE(), ERROR_MESSAGE())
END CATCH

插入仍然失败,并且没有任何内容记录到我的错误表中。

如果我禁用触发器,一切正常。

由于

0 个答案:

没有答案