关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »用SQL Server处理数据层错误

    用SQL Server处理数据层错误

    2014-08-01 00:00:00 出处:ITJS
    分享

    开发人员在努力做到妥善地处理意外,这样用户就不用担心天书般的系统错误信息。出于这个原因,异常处理是每个.NET应用程序的一个标准部分。Try/catch块让你能够捕捉异常并从该点控制应用程序的执行。与数据库进行交互操作的时候会发生很多错误,但是很多开发人员都不知道如何处理数据库层的错误。本文我们将探讨如何利用SQLServer和T-SQL来处理你数据库代码里的错误。

    处理T-SQL里的错误

    SQLServer的SQL对话让你能够轻松地处理可能会在存储进程、函数里发生的非致命错误,但是并不是所有的错误都很容易处理。事实上,致命和非致命的错误有很多。什么是致命的,什么是非致命的,对此没有很完备的文档说明,但是你的应用程序代码总是可以利用try/catch块来处理致命的数据库错误。对于其他所有的错误,你可以使用下面的技术。

    事务

    你应该在数据库代码里使用事务,以确保在一切都没有问题的时候所有的更改都被完成。SQLServer的在线帮助将事务描述为任务的一个逻辑单元,它由一系列语句(选择、插入、更新,或者删除等)组成。假如在事务期间没有发生任何错误,那么对事务的所有改动都会成为数据库的永久部分。假如在这期间发生了错误,不会对数据库进行任何修改。

    事务包含在BEGIN TRANSACTION和END TRANSACTION语句之间。ROLLBACK TRANSACTION语句可以取消所有的更改,因此不会发生任何变化。用COMMIT TRANSACTION语句可以进行永久的更改。现在,就让我们把注意力放在如何处理T-SQL里的错误上。

    @@Error

    @@Error函数让你可以实现T-SQL错误处理。它会返回由系统所返回的错误代码。假如没有错误发生就会返回“0”。@@Error函数必须紧接在一个语句之后立即被调用,因为它会在每个T-SQL语句之后被清除。

    RAISERROR

    RAISERROR语句让你能够生成一个自定义的错误信息或者使用一个放在sysmessages表格里的已有消息。你可以在线查看它的句法,但是它的最基本格式包括了消息(用于自定义的消息)或者消息id(用于已有的消息)和它的严重度及状态。SQLServer没有使用状态,所以随便传递给它一个数字就可以了。严重度表示了错误的严重程度,0-18供用户使用,而19-25保留给管理员使用。

    在列表A里,示例存储过程使用了这些特性来更新示例Northwind数据库里的一条记录:

    CREATE PROCEDURE sp_UpdateCustomerPhone(

    <%@ Import Namespace="System.Data" %>

    TechRepublic.com - Test

    <%@ Import Namespace="System.Data" %>

    TechRepublic.com - Test


    列表C

    涵盖所有的数据库

    利用try/catch代码块来处理.NET应用程序代码里的异常是一个简单明了的过程,但是你还可以监视数据库层的异常。SQLServer的T-SQL语言为你处理代码异常提供了所需要的一切。

    作者:Tony Patton的职业生涯开始于应用程序开发员,并已经获得了证明其专业水平的Java、VB、Lotus和XML认证。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。