Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL:Try/Catch não detecta um erro ao tentar acessar uma tabela que não consegue encontrar


No início do seu script, use SET XACT_ABORT
SET XACT_ABORT ON

Acho que não vai ser possível:

Ref .
USE AdventureWorks2012;
GO

BEGIN TRY
    -- Table does not exist; object name resolution
    -- error not caught.
    SELECT * FROM NonexistentTable;
END TRY
BEGIN CATCH
    SELECT 
        ERROR_NUMBER() AS ErrorNumber
        ,ERROR_MESSAGE() AS ErrorMessage;
END CATCH