
[dbo].[AL_EVALUATE_ERROR]
CREATE PROCEDURE AL_EVALUATE_ERROR
@ErrorNumber int OUTPUT,
@ErrorSeverity int OUTPUT,
@ErrorState int OUTPUT,
@ErrorMessage nvarchar(max) OUTPUT,
@ApplicationErrorCode int OUTPUT
AS
BEGIN
SET @ApplicationErrorCode = NULL
SELECT
@ErrorNumber = ERROR_NUMBER(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE(),
@ErrorMessage = ERROR_MESSAGE();
IF (@ErrorNumber = 50000)
BEGIN
IF (@ErrorState = 0)
SET @ApplicationErrorCode = -20000
IF (@ErrorState = 1)
SET @ApplicationErrorCode = -20001
IF (@ErrorState = 2)
SET @ApplicationErrorCode = -20002
IF (@ErrorState = 3)
SET @ApplicationErrorCode = -20003
IF (@ErrorState = 4)
SET @ApplicationErrorCode = -20004
IF (@ErrorState = 5)
SET @ApplicationErrorCode = -20005
IF (@ErrorState = 6)
SET @ApplicationErrorCode = -20006
IF (@ErrorState = 11)
SET @ApplicationErrorCode = -20011
IF (@ErrorState = 15)
SET @ApplicationErrorCode = -20015
IF (@ErrorState = 16)
SET @ApplicationErrorCode = -20016
IF (@ErrorState = 45)
SET @ApplicationErrorCode = -20045
IF (@ErrorState = 100)
SET @ApplicationErrorCode = -20100
END
ELSE IF (@ErrorNumber = 2627 OR @ErrorNumber = 2601)
SET @ApplicationErrorCode = -1
ELSE IF (@ErrorNumber = 547)
SET @ApplicationErrorCode = -2291
ELSE IF (@ErrorNumber = 515)
SET @ApplicationErrorCode = -1400
RETURN
END
GO