SQLベースの異常キャプチャ、トランザクションがロールバックをコミット

多くの場合、プログラムに記述されたが、そうめったにSQLで記述していないものの、非常に認識して見ては、最近のコード上で、それを考える、について書いて今出て、時間があります。



SET XACT_ABORT ON  --有些可能查询不到异常,加上这个
BEGIN TRAN  --事务开启
 BEGIN TRY  --捕获开始
          
    insert into  [test]  (sort) values ('反反复复反反复复反反复复')   --sort 这个字段类型 varchar(10)

	insert	into  [test]  (sort) values ('12323') 

    COMMIT TRAN;  
 END TRY  
 BEGIN CATCH   

	    IF(@@TRANCOUNT > 0) ----------判断有没有事务
        BEGIN
              ROLLBACK TRAN----------回滚事务  
        END  

		select Error_number() as ErrorNumber,  --错误代码
        Error_severity() as ErrorSeverity,  --错误严重级别,级别小于10 try catch 捕获不到
        Error_state() as ErrorState ,  --错误状态码
        Error_Procedure() as ErrorProcedure , --出现错误的存储过程或触发器的名称。
        Error_line() as ErrorLine,  --发生错误的行号
        Error_message() as ErrorMessage  --错误的具体信息

 END CATCH  

結果:
ここに画像を挿入説明
一時的に、あなたに歓迎のアドバイスを書きます!

おすすめ

転載: blog.csdn.net/weixin_42780928/article/details/93485898