zoukankan      html  css  js  c++  java
  • Sql Server存储过程中加入Try Catch,并向客户端返回友好信息

    create proc P_Insert_New_BookTitle_2K5
    (@TitleName nvarchar(128),
     @Price money,
     @au_fname nvarchar(32),
     @au_name nvarchar(64),
     @CommissionRating int)
    as
    declare @err int,
            @tablename sysname,
            @errormessage nvarchar(2000)

    BEGIN TRY

        begin transaction
        select @errormessage = 'insert into Titles table failed',
             @tablename = 'Titles'
        insert dbo.Titles (TitleName, Price)
        values (@TitleName, @Price)

        select @errormessage = 'insert into Authors table failed',
             @tablename = 'Authors'
        insert dbo.Authors  (au_fname, au_lname, TitleID,CommissionRating)
        values (@au_fname, @au_fname, @@IDENTITY, @CommissionRating)
        commit transaction
    END TRY

    BEGIN CATCH
        
        ROLLBACK TRANSACTION

        -- Log the error
        insert dbo.Application_Error_Log (UserName, tableName,     
                errorNumber, errorSeverity, errorState, errorMessage)
        values (suser_sname(), @tableName, ERROR_NUMBER(),  
                ERROR_SEVERITY(), ERROR_STATE(), ERROR_MESSAGE())  

        RAISERROR (@errormessage, 16,1)

    --返回用户定义的错误信息并设系统标志,记录发生错误。

    END CATCH

  • 相关阅读:
    testng遇到的一些问题
    Redis-常用命令总结
    Spring AOP
    Spring IOC
    Java-J.U.C总结
    Java-将map拼接成“参数=值&参数=值”
    java多线程-线程池
    mysql 二进制文件增量备份
    Centos下mysql数据库备份与恢复的方法
    CentOS下mysql默认安装位置
  • 原文地址:https://www.cnblogs.com/yourancao520/p/2196596.html
Copyright © 2011-2022 走看看