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
    ------- ------- --------- -------------------- --------- --------------------------------

  • 相关阅读:
    Attach Volume 操作(Part II)
    Attach Volume 操作(Part I)
    Create Volume 操作(Part III)
    Create Volume 操作(Part II)
    Linux 内核Coding Style整理
    内核工具 – Sparse 简介
    IP101A芯片默认物理地址(PHY Adress)确定
    嵌入式设备上的 Linux 系统开发
    嵌入式Linux开发系列之一: 走进嵌入式Linux的世界
    嵌入式 Linux 应用:概述
  • 原文地址:https://www.cnblogs.com/zhangzheny/p/975817.html
Copyright © 2011-2022 走看看