Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL:Try/Catch fängt keinen Fehler ab, wenn versucht wird, auf eine Tabelle zuzugreifen, die es nicht finden kann

Verwenden Sie am Anfang Ihres Skripts SET XACT_ABORT

SET XACT_ABORT ON

Ich glaube nicht, dass das möglich sein wird:

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