共用方式為


使用 Try..Catch 於原生編譯的預存程序中

您可以在原生編譯預存程序內使用 try...catch 區塊。 支援下列建構:

  • 錯誤行

  • 錯誤訊息

  • 錯誤代碼

  • 錯誤處理程序

  • 錯誤嚴重性

  • 錯誤狀態

CREATE PROCEDURE test_try_catch  
with native_compilation, schemabinding, execute as owner   
as  
begin atomic with (transaction isolation level = snapshot, language = N'us_english')  
  
  BEGIN TRY  
    -- generate error  
    declare @i int = 1,  
    @j int = 0  
    select @i/@j  
  END TRY  
  BEGIN CATCH  
    -- Execute error retrieval routine.  
    SELECT  
    ERROR_SEVERITY() AS ErrorSeverity  
    ,ERROR_STATE() AS ErrorState  
    ,ERROR_PROCEDURE() AS ErrorProcedure  
    ,ERROR_LINE() AS ErrorLine  
    ,ERROR_MESSAGE() AS ErrorMessage  
  END CATCH  
end  
go  
  
exec test_try_catch  
go  

另請參閱

原生編譯的預存程序