For the following SP, is table aaa doesn't exist, error is not caught. Any help is appreciated. Thanks.
I would still expect ''Unexpected error occurred!' if table 'aa' doesn't exist.
I am using 2005.
DECLARE @intErrorCode INT
BEGIN TRAN
UPDATE aa
SET DRE_EMAIL_ADDR = 'ss'
WHERE DRE_EMAIL_ADDR = 'mm'
SELECT @intErrorCode = @@ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
COMMIT TRAN
PROBLEM:
IF (@intErrorCode <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
END
Also same results with TRY/CATCH
It's still not get caught.
It doesn't display "Should be here ...." but just :
Msg 208, Level 16, State 1, Line 3
Invalid object name 'aa'.
And I am using 2005.
BEGIN TRY
BEGIN Transaction
UPDATE aa SET DRE_EMAIL_ADDR = 'ss' WHERE DRE_EMAIL_ADDR = 'mm'
COMMIT Transaction
END TRY
BEGIN CATCH
DECLARE @err int
SELECT @err = @@error
PRINT 'Should be here : @@error: ' + ltrim(str(@err) )
ROLLBACK
END CATCH
I would still expect ''Unexpected error occurred!' if table 'aa' doesn't exist.
I am using 2005.
DECLARE @intErrorCode INT
BEGIN TRAN
UPDATE aa
SET DRE_EMAIL_ADDR = 'ss'
WHERE DRE_EMAIL_ADDR = 'mm'
SELECT @intErrorCode = @@ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
COMMIT TRAN
PROBLEM:
IF (@intErrorCode <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
END
Also same results with TRY/CATCH
It's still not get caught.
It doesn't display "Should be here ...." but just :
Msg 208, Level 16, State 1, Line 3
Invalid object name 'aa'.
And I am using 2005.
BEGIN TRY
BEGIN Transaction
UPDATE aa SET DRE_EMAIL_ADDR = 'ss' WHERE DRE_EMAIL_ADDR = 'mm'
COMMIT Transaction
END TRY
BEGIN CATCH
DECLARE @err int
SELECT @err = @@error
PRINT 'Should be here : @@error: ' + ltrim(str(@err) )
ROLLBACK
END CATCH
Comment