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;
全站熱搜
留言列表