当前位置: 网学 > 编程文档 > SQL SERVER > 正文

在SQL Server 2005中进行错误捕捉

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/19
下载{$ArticleTitle}原创论文样式
r2005中提供了和大多数编程语言类似的trycatch错误捕捉功能,从而使Transact-SQL第一次可以真正地进行错误捕捉。使用trycatch可以将p1的下半部分改写为如下形式。


ELSE
BEGIN
  BEGIN TRY
    INSERT INTO table1 VALUES(@Num, ''p'')   
    COMMIT TRANSACTION
    RETURN 0
  END TRY
  BEGIN CATCH
    RAISERROR(''table1中已经存在%d了。'', 16, 1, @Num)
    ROLLBACK TRANSACTION
    RETURN 2
  END CATCH
END


    可以看出,这个改写的部分未使用SELECT查询table1中是否已经有了某条记录,而是通过数据库的约束来进行判断的。如果键值冲突,就产生了错误,这样SQL语句就直接跳到BEGIN CATCH中执行错误处理代码。这样做效率要比上一个版本高得多,而且如果将RAISERROR去掉,p1就不会抛出任何错误,只是返回了一个错误码,这样有利于客户端代码进行处理。

在Transact-SQL中进行错误捕捉,如果使用的是SQL Server2005,我的建议是尽量使用trycatch,因此它会捕捉到未预料到的错误,并且会使Transact-SQL更容易维护。当然,这样做就无法将Transact-SQL移植到SQL Server2000或更低的版本上运行,要是想写通用的Transact-SQL,还是使用传统的方法捕捉错误吧!

  • 上一篇资讯: 主键的故事
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号