zoukankan      html  css  js  c++  java
  • sql server 2005中新增加的try catch学习

    sql server 2005中新增加的try catch,可以很容易捕捉异常了,今天大概学习看了下,归纳下要点如下 需要什么来搜一搜吧so.bitsCN.com

    基本用法BEGIN TRY
    { sql_statement |
    statement_block }
    END TRY
    BEGIN CATCH
    { sql_statement |
    statement_block }
    END CATCH
    ,和普通语言的异常处理用法差不多,但要注意的是,SQL SERVER只捕捉那些不是严重的异常,当比如数据库不能连接等这类异常时,是不能捕捉的一个例子:BEGIN TRY
    DECLARE @X INT
    -- Divide by zero to generate Error
    SET @X = 1/0
    PRINT 'Command after error in TRY block'
    END TRY
    BEGIN CATCH
    PRINT 'Error Detected'
    END CATCH
    PRINT 'Command after TRY/CATCH blocks'
    另外try catch可以嵌套Begin TRY
    delete from GrandParent where Name = 'John Smith'
    print 'GrandParent deleted successfully'
    End Try
    Begin Catch
    Print 'Error Deleting GrandParent Record'
    Begin Try
    delete from Parent where GrandParentID =
    (select distinct ID from GrandParent where Name = 'John Smith')
    Print 'Parent Deleted Successfully'
    End Try
    Begin Catch
    print 'Error Deleting Parent'
    Begin Try play.bitsCN.com累了吗玩一下吧
    delete from child where ParentId =
    (select distinct ID from Parent where GrandParentID =
    (select distinct ID from GrandParent where Name = 'John Smith'))
    print 'Child Deleted Successfully'
    End Try
    Begin Catch
    Print 'Error Deleting Child'
    End Catch
    End Catch
    End Catch
    另外,SQL SERVER 2005在异常机制中,提供了error类的方法方便调试,现摘抄如下,比较简单,不予以解释ERROR_NUMBER(): Returns a number associated with the error.ERROR_SEVERITY(): Returns the severity of the error.ERROR_STATE(): Returns the error state number associated with the error.ERROR_PROCEDURE(): Returns the name of the stored procedure or trigger in which the error occurred.ERROR_LINE(): Returns the line number inside the failing routine that caused the error. ERROR_MESSAGE(): Returns the complete text of the error message. The text includes the values supplied for any substitutable parameters, such as lengths, object names, or times. 最后举例子如下,使用了error类的方法BEGIN TRY

    feedom.net关注网管是我们的使命


    DECLARE @X INT
    -- Divide by zero to generate Error
    SET @X = 1/0
    PRINT 'Command after error in TRY block'
    END TRY
    BEGIN CATCH
    PRINT 'Error Detected'
    SELECT ERROR_NUMBER() ERNumber,
    ERROR_SEVERITY() Error_Severity,
    ERROR_STATE() Error_State,
    ERROR_PROCEDURE() Error_Procedure,
    ERROR_LINE() Error_Line,
    ERROR_MESSAGE() Error_Message
    END CATCH
    PRINT 'Command after TRY/CATCH blocks'
    最后输出Error Detected
    Err_Num Err_Sev Err_State Err_Proc Err_Line Err_Msg
    ------- ------- --------- -------------------- --------- --------------------------------

  • 相关阅读:
    python学习笔记 | 国内常用源镜像地址
    python学习笔记 | macOS Big Sur动态壁纸食用指南
    GitHub README.md文本编写指南
    FAT32、NTFS、exFAT有什么区别?
    python模块详解 | unittest(单元测试框架)(持续更新中)
    Linux学习笔记 | 常见错误之账户密码正确但是登录不进去系统
    数学建模学习笔记 | matlab基本命令及用法
    selenium自动化 | 借助百度AI开放平台识别验证码登录职教云
    JAVA集合框架
    JAVA集合框架
  • 原文地址:https://www.cnblogs.com/zhangzheny/p/975817.html
Copyright © 2011-2022 走看看