博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server2012中的Throw语句尝试
阅读量:6960 次
发布时间:2019-06-27

本文共 1291 字,大约阅读时间需要 4 分钟。

简介
    SQL SERVER2012实现了类似C#抛出异常的Throw语句。相比较于SQL Server2005之前使用@@ERROR,和SQL Server2005之后使用RAISERROR()引发异常都是一个不小的进步,下面来看一下Throw的用法。
 
RAISERROR和THROW比较
    在SQL Server2005/2008中,使用RAISERROR和TRY…CATCH语句来抛出异常相比较根据@@ERROR进行判断来讲已经进步了很多。但是使用RAISERROR有一个非常不好的一点是无法返回真正出错的行数。如图1所示。
    1
    图1.使用RAISERROR返回错误行数不正确
 
    而如果我们需要具体的错误信息,可能还需要这么写,如图2所示。
    2
    图2.错误信息写法比较麻烦
 
    而使用SQL SERVER2012新增的THROW语句,则变得简单很多。并且能正确返回出错的行,对于比较长的T-SQL语句来说,这节省了不少时间,如图3所示。
    3
    图3.THROW正确返回出错行和出错信息
 
    我们也可以为THROW语句指定参数来返回自定义错误信息,但不能再标识出正确的错误行,如图4所示。
    4
    图4.为THROW语句指定参数
 
   
小结
    因此使用THROW语句可以带来如下好处
    1.更简洁优雅的代码
    2.可以正确的标识出出错的行数,对于大量T-SQL来说,这点可以节省不少时间
分类: SQL Server2012新特性
好文要顶 关注我 收藏该文    

简介

    SQL SERVER2012实现了类似C#抛出异常的Throw语句。相比较于SQL Server2005之前使用@@ERROR,和SQL Server2005之后使用RAISERROR()引发异常都是一个不小的进步,下面来看一下Throw的用法。

 

RAISERROR和THROW比较

    在SQL Server2005/2008中,使用RAISERROR和TRY…CATCH语句来抛出异常相比较根据@@ERROR进行判断来讲已经进步了很多。但是使用RAISERROR有一个非常不好的一点是无法返回真正出错的行数。如图1所示。

    

    图1.使用RAISERROR返回错误行数不正确

 

    而如果我们需要具体的错误信息,可能还需要这么写,如图2所示。

    

    图2.错误信息写法比较麻烦

 

    而使用SQL SERVER2012新增的THROW语句,则变得简单很多。并且能正确返回出错的行,对于比较长的T-SQL语句来说,这节省了不少时间,如图3所示。

    

    图3.THROW正确返回出错行和出错信息

 

    我们也可以为THROW语句指定参数来返回自定义错误信息,但不能再标识出正确的错误行,如图4所示。

    

    图4.为THROW语句指定参数

 

   

小结

    因此使用THROW语句可以带来如下好处

    1.更简洁优雅的代码

    2.可以正确的标识出出错的行数,对于大量T-SQL来说,这点可以节省不少时间

分类: 
本文转自CareySon博客园博客,原文链接:http://www.cnblogs.com/CareySon/archive/2012/03/14/2395661.html,如需转载请自行联系原作者
你可能感兴趣的文章
HTML+js+css实现点击图片弹出上传文件窗口的两种思路
查看>>
android CircularSeekBar
查看>>
YY博客园UML类图之博客模块
查看>>
陶哲轩1(数学牛孩的成长研究
查看>>
ubuntu14.04安装dropbox
查看>>
[.net 面向对象编程基础] (7) 基础中的基础——流程控制语句
查看>>
学术简历的撰写
查看>>
J2EE总结(2)——Servlet/JSP
查看>>
keyset与entryset
查看>>
Android 中的 Service 全面总结
查看>>
Python核心编程笔记--随机数
查看>>
CentOS7安装iptables防火墙
查看>>
为什么需要大数据安全分析?
查看>>
ASP.NET MVC 5 入门摘要
查看>>
cocos2dx环境配置和打包
查看>>
Area of a Circle
查看>>
Find the capitals
查看>>
HDU 1253-大逃亡(裸-DBFS)
查看>>
如何加入该网站for Linux(绑定域名)
查看>>
HTTP 笔记与总结(2 )HTTP 协议的(请求行的)请求方法 及 (响应行的)状态码...
查看>>