SQL SERVER存儲過程中使用事務


存儲過程格式:

CREATE PROCEDURE YourProcedure    
AS
BEGIN
    SET NOCOUNT ON;

    BEGIN TRY---------------------開始捕捉異常
       BEIN TRAN------------------開始事務
        UPDATE A SET A.names = B.names FROM T1 AS A INNER JOIN T2 AS B ON A.id = B.id

        UPDATE A SET A.names = B.names FROM T1 AS A INNER JOIN T2 AS B ON A.TEST = B.TEST

    COMMIT TRAN -------提交事務
    END TRY-----------結束捕捉異常
    BEGIN CATCH------------有異常被捕獲
        IF @@TRANCOUNT > 0---------------判斷有沒有事務
        BEGIN
            ROLLBACK TRAN----------回滾事務
        END 
        EXEC YourLogErrorProcedure-----------記錄存儲過程執行時的錯誤信息,自定義
    END CATCH--------結束異常處理
END

二、捕獲錯誤的常用函數 

1、ERROR_NUMBER()  返回錯誤號。

2、ERROR_SEVERITY()  返回嚴重級別。

3、ERROR_STATE()  返回錯誤狀態號。

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

5、ERROR_LINE()  返回導致錯誤的行號。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM