• λ我爱Aspx >> C#.Net >> 一个容易忽视的存储过程问题_数据库技巧
  • 一个容易忽视的存储过程问题_数据库技巧

  • :aspxer  Դ:internet  :2007-4-28 23:44:51  ؼ:数据库,数据
  • sql server 2005中新增加的try catch,可以很容易捕捉异常了,今天大概学习看了下,归纳下要点如下

    基本用法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

    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

    Ҷƪл˵?
  • һƪ调用存储过程并且使用返回值的基本方法_数据库技巧
    һƪ一个简单的用存储过程分页_ASP技巧