貼個sql事務,在sql2000里判斷執行是否成功用@@ERROR 判斷
這個東西多少還是有點問題,sql2005了可以用try。。catch了,不管那塊錯都能捕捉,然后在回滾,很方便,貼出來晾晾?
?
BEGIN TRANSACTION;
BEGIN TRY? --try 執行sql
? ?
? SELECT 1/0;
END TRY
BEGIN CATCH? --cache抓錯
? ? 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;--正確的sql,提交事務
GO
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
