天天看點

SQL Server Try Catch錯誤處理

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

一。文法要點:

BEGIN TRY

{ sql_statement ¦ statement_block }

END TRY

BEGIN CATCH

[ { sql_statement ¦ statement_block } ]

END CATCH

[ ; ]

異常部分:

在 CATCH 塊的作用域内,可以使用以下系統函數來擷取導緻 CATCH 塊執行的錯誤消息:

ERROR_NUMBER() 傳回錯誤号。

ERROR_SEVERITY() 傳回嚴重性。

ERROR_STATE() 傳回錯誤狀态号。

ERROR_PROCEDURE() 傳回出現錯誤的存儲過程或觸發器的名稱。

ERROR_LINE() 傳回導緻錯誤的例程中的行号。

ERROR_MESSAGE() 傳回錯誤消息的完整文本。 該文本可包括任何可替換參數所提供的值,如長度、對象名或時間。

二。執行個體:

Step 1:

Create PROCEDURE SysLogError

AS

BEGIN

Insert into SystemErrorLog

(SPName,Description,LogTime)

Values

(ERROR_PROCEDURE(),Convert(nvarchar(MAX),ERROR_LINE()) + ':' + ERROR_MESSAGE(),GetDate())

END

Step 2:

    BEGIN TRANSACTION;

。。。。

    COMMIT TRANSACTION;

    IF @@TRANCOUNT > 0

    BEGIN

        ROLLBACK TRANSACTION;

    END

    EXECUTE [dbo].[SysLogError];

END CATCH;

<a href="http://www.cnblogs.com/tag/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8A%80%E6%9C%AF/feeds">#資料庫技術</a>

本文轉自 netcorner 部落格園部落格,原文連結:   http://www.cnblogs.com/netcorner/archive/2008/12/06/2912096.html,如需轉載請自行聯系原作者