SQL2005現已支援TRY CATCH的程式寫法


請參考下例


 


BEGIN TRANSACTION          --交易開始


 


BEGIN TRY             


 


--Insert, Delete, Update…etc


--填入相關的資料異動語法


 


END TRY


BEGIN CATCH


--若截取到錯誤, 則顯示該錯誤的相關訊息


SELECT


    ERROR_NUMBER() AS ErrorNumber,


    ERROR_SEVERITY() AS ErrorSeverity,


    ERROR_STATE() as ErrorState,


    ERROR_PROCEDURE() as ErrorProcedure,


    ERROR_LINE() as ErrorLine,


    ERROR_MESSAGE() as ErrorMessage;


 


IF @@TRANCOUNT > 0


    --因截取到錯誤, 故須回覆先前已異動過的記錄


    ROLLBACK TRANSACTION;


END CATCH;


 


IF @@TRANCOUNT > 0


--將異動的記錄寫回資料庫中


COMMIT TRANSACTION;


 

nelman 發表在 痞客邦 PIXNET 留言(0) 人氣()