• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > SQL Server 2012 错误处理增强THROW

SQL Server 2012 错误处理增强THROW

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了SQL,Server,2012,错误,处理,增强,THROW等相关知识,希望本文的分享对您有所帮助

在C#中开发人员可以使用TryCatch/Throw语句对错误进行处理,虽然在2005后,SQL Server也引入了Try/Catch语句,但是Throw没有被移植过来。开发者需要使用RAISERROR语句将错误消息返回到应用程序中,对于自定义的错误信息,需要先在sys.Messages创建错误才可以

在C#中开发人员可以使用TryCatch/Throw语句对错误进行处理,虽然在2005后,SQL Server也引入了Try/Catch语句,但是Throw没有被移植过来。开发者需要使用RAISERROR语句将错误消息返回到应用程序中,对于自定义的错误信息,需要先在sys.Messages创建错误才可以在RAISEERROR中使用。
-


在2012中,微软终于增加了THROW语句,THROW包含三个参数(可以不用带参数):THROW[ { error_number | @local_variable }, { message | @local_variable },{ state |@local_variable }] [ ; ]

注意:如果使用error_number参数,错误号码必须大于50000小于等于 2147483647。

下面的例子将使用RAISEERROR和THROW处理被除数不能为0的错误:

BEGIN TRY

SELECT 1/0

END TRY

BEGIN CATCH

DECLARE @msg NVARCHAR(MAX)=ERROR_MESSAGE()

RAISERROR (@msg, 16, 1)

END CATCH

错误信息:
(0 row(s) affected)

Msg 50000, Level 16, State 1, Line 6

Divide by zero error encountered.



BEGIN TRY

SELECT 1/0

END TRY

BEGIN CATCH

THROW

END CATCH

(0 row(s) affected)

Msg 8134, Level 16, State 1, Line 2

Divide by zero error encountered.

THROW也可以不在TRY/CATCH块中使用:

sp_addmessage @msgnum= 51000,

@severity =1,

@msgtext =N'i am wrong';

GO

THROW 51000, 'i am wrong', 1;

结果:

Msg 51000, Level 16, State 1, Line 1

i am wrong

RAISERROR和Throw的不同:

RAISERROR statement
THROW statement

If a msg_id is passed to RAISERROR, the ID must be defined in sys.messages.
The error_number parameter does not have to be defined in sys.messages.

The msg_str parameter can containprintf formatting styles.
The message parameter does not acceptprintf style formatting.

The severity parameter specifies the severity of the exception.
There is no severity parameter.The exception severity is always set to 16.
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05将oracle的create语句更改为alter语句使用
  • 2018-12-05批量执行sql语句的方法
  • 2018-12-05MYSQL学习总结(五):MYSQL主从搭建
  • 2018-12-05Can’t open file:''[Table]mytable.MYI''
  • 2018-12-05sqlserver数据库中的表、字段sql语句
  • 2018-12-05MySQL基本调度方法浅析
  • 2017-05-11解析MYSQL 数据库导入SQL 文件出现乱码的问题
  • 2018-12-05MySQL 利用binlog增量备份+还原实例
  • 2017-05-11mysql查询字符串替换语句小结(数据库字符串替换)
  • 2018-12-05浅谈sql语句优化

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 动态SQL中返回数值的实现代码
    • MySQL与Oracle 差异比较之二基本语法
    • Oracle不同数据库间对比分析脚本
    • 在SQL查询中使用LIKE来代替IN查询的方法
    • 从MySQL的源码剖析Innodb buffer的命中率计算
    • 很有意思的SQL多行数据拼接
    • 在MySQL中使用序列的简单教程
    • MySQL之终端Terminal(dos界面)管理数据库、数据表、数据的基本操作
    • mysql5.7.21 winx64安装配置图文分享
    • MySQL服务器时间同步问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有