< 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,如需轉載請自行聯系原作者