我在sql server数据库中有一个非常奇怪的行为触发器,这些都是奇怪的指示:
...
EXEC [ope].[spMissionDepartment] @AircraftId = @vnAircraftId
RAISERROR('test error', 16, 1)
END TRY
BEGIN CATCH
SELECT @ErrorMessage = ERROR_MESSAGE()
ROLLBACK TRANSACTION
RAISERROR(@ErrorMessage, 16, 1) -- strange line
END CATCH
奇怪的行为是这样的:
如果我删除奇怪的行而不是我在网页上收到的错误
TIMEOUT EXPIRED。在完成操作或服务器之前暂停的超时时间是没有响应。
否则,如果我不删除奇怪的行,我会收到错误
测试错误
没有其他触发器,所以 exec 应该是最后执行的语句,如果没有 Raiserror ,我怎么可能收到超时?
答案 0 :(得分:0)
错误不受TRY ... CATCH构造的影响 TRY ... CATCH构造不会捕获以下条件:
当CATCH块与TRY ... CATCH构造处于相同的执行级别时,它们不会处理以下类型的错误: