SQL Server数据库中如何处理异常代码

  

SQL Server数据库中如何处理异常代码?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

SQL Server使用试一试……抓结构实现TSQL语句的错误处理,试着命令负责监控语句执行的情况,如果有TSQL语句发生异常,并且严重级别(严重性级别)大于10,并且小于20日那么赶命令会捕获到异常的错误。

开始尝试
  {sql_statement | statement_block}
  最后试一试
  开始抓
  [{sql_statement | statement_block}]
  最终赶上

数据库开发工程师需要把一条或多条语句写入到尝试代码块中,如果尝试代码块中的代码在执行过程中发生错误,那么在错误发生的点之后的代码不再执行,程序的控制权转移到抓住代码块块中。如果尝试代码块没有发生错误,那么不会执行抓住代码块,程序的控制权转移到最终赶上之后的语句。

注意,在抓住代码块中捕获的异常不会返回给调用程序,如果需要把错误消息返回给调用程序,需要在抓住代码块中使用抛(或RAISERROR,不推荐使用)命令显式抛出错误。

在TSQL中,使用TRY和CATCH编写异常处理代码块,在CATCH子句中,使用以下函数,能够获取异常发生时的信息。

——返回发生错误的代码行号(LineNumber)   ERROR_LINE ()   ——返回错误号(ErrorNumber)   ERROR_NUMBER ()   @ error   ——返回错误消息(ErrorMessage)   ERROR_MESSAGE ()   ——返回发生错误的SP的名字   ERROR_PROCEDURE ()   ——返回错误的严重度(错误严重程度)   ERROR_SEVERITY ()   ——返回错误的状态(错误状态)   ERROR_STATE ()

SQL Server抛出的一个错误,通常包括错误代码(错误),严重级别(严重程度),错误状态(错误状态)和错误消息(错误消息)等信息。

1,错误代码

错误代码,可以由变量@ Error和函数ERROR_NUMBER()获得,用于返回上一条语句的错误代码,该代码唯一标识该错误。

2,错误的严重级别

错误的严重程序(严重性级别)共24个有级别,表明SQL Sever遇到问题的类型,严重性级别是一个int类型,可以由函数ERROR_SEVERITY()返回,数值越大,说明问题越严重。

按照错误对系统的影响程序,把严重级别分为四组:

    <李>清廉:信息,可以认为是警告李 <李> 16:错误,是用户代码导致的李 <李> 17 - 19:非常严重的错误,只能由系统管理员来修复李 <李> 20 - 24:致命的错误,可能导致整个系统无法正常使用

 SQL Server数据库中如何处理异常代码

从17日- 19日错误不能被用户修正,只能由系统管理员来修复问题。

 SQL Server数据库中如何处理异常代码

从20 - 24,这个级别的错误遇到的情况比较少,一旦遇到,那么基本上表明整个数据库系统遇到了非常严重的错误:

 SQL Server数据库中如何处理异常代码

3,错误状态

错误状态(错误状态)是用户自定义的编码,用于使开发者能够轻易识别引起异常的确切位置。

4,错误消息

错误消息,是关于错误的描述性文本,可以是SQL Server系统预定义的错误信息,也可以是把命令抛出的用户自定义的文本。

在SQL Server 2012及之后的版本中,使用扔关键字代替RAISERROR,用于抛出异常,并将执行控制权转移到抓住代码块。

把[ERROR_NUMBER、error_message ERROR_STATE];

参数注释:

    <李> ERROR_NUMBER:错误代码,是一个int类型,数值必须大于5000年,小于2147483647,这是用户自定义的错误代码。 <李> error_message:错误消息,类型是nvarchar(2048) <李>状态:跟错误相关联的一个状态,类型是非常小的整数,取值范围是:0 - 255
      李,

注意:在把语句之前的语句,必须以分号;结尾。

当把语句用于抛出自定义的异常时,severty水平常常被设置为默认的16;当扔用于抛出收到,此时扔没有任何参数,处于捕捉代码块中,仅仅用于把捉捕获的异常重新抛出,severty级别,状态,错误消息跟原始异常相同。

例子1,抛出自定义的异常:

开始尝试
  选择1/0
  最后试一试
  开始抓
  ,把51000年,& # 39;遇到# 39;除以零错误,1;
  最终赶上;

SQL Server数据库中如何处理异常代码