sql中的begin catch 。。。end catch 的用法

begin catch 。。。end  catch 是用来处理异常的

begintry
--SQL
endtry

begincatch--sql (处理出错动作)
endcatch

我们将可能会出错的sql 写在begin try...endtry 之间,若出错,刚程序就跳到紧接着的begin try...endtry 的beign catch...endcatch

中,执行beign catch...endcatch错误处理SQL。try..catch 是可以嵌套的。

在begin catch ...endcatch中我们可以利用系统提供的下面四个函数得到出错信息:

error_number 返回错误代码

error_serverity 返回错误的严重级别

error_state 返回错误状态代码

error_message 返回完整的错误信息

上面的四个函数在同一个begin catch ...endcatch可以在多次使用,值是不变的。

下面是一个简单的小例子。

begintry
select2/0
endtry

begincatch
selecterror_number()aserror_number ,
error_message()aserror_message,
error_state()aserror_state,
error_severity()aserror_severity
endcatch

结果:

-----
error_number error_message error_state error_severity

8134遇到以零作除数错误。116

时间: 2024-10-24 05:23:20

sql中的begin catch 。。。end catch 的用法的相关文章

SQL中的case when then else end用法

转载自 http://lj.soft.blog.163.com/blog/static/7940248120109215191358/ Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方

【语法】SQL中的case when then else end用法-解决一个字段根据条件取不同值

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

SQL中的charindex函数与reverse函数用法

----------------------首先介绍charindex函数----------------------------- CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置. CHARINDEX函数调用方法如下: CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expres

sql中where以后and和or的用法

SELECT * FROM NOTICE WHERE 1 = 1 AND (Z_STATUS = 1 AND RELEASE_DEPT_ID = '-1' AND IS_ISSUE = 1 OR INSTR(RELEASE_DEPT_ID, '109') > 0) AND ID = '9F754701039E4903811E57589B19B18A' ORDER BY ISSUE_DATE DESC

在Sql中使用Try Catch

原文:在Sql中使用Try Catch 今天在写sql中出现了!我想在sql使用trycatch吧! 哎..但是语法又记不住了! 那就清楚我们的google大师吧! 嘿,网上关于在sql中使用Try Catch的还有真不少的文章! 闲话就少了! 今天记录下来以便下次使时查阅! 创建错误日志表: CREATE TABLE ErrorLog(errNum INT,ErrSev NVARCHAR(1000),ErrState INT,ErrProc NVARCHAR(1000),ErrLine INT

【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析

这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处理,即处理异常代码 } 代码区如果有错误,就会返回所写异常的处理. 首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去,比如说: try { int i = 1/0; } catch(Exception e) { ........ } 一个计算的话,如果除数

finally中使用return会吃掉catch中抛出的异常

今天学习大神的文章:深入理解java异常处理机制 学到一个有意思的知识点.如果在finally中使用return会吃掉catch中抛出的异常. 看例子: [java] view plaincopy public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try { ret = testEx1(); } catch (Excepti

SQL中删除某数据库所有trigger及sp

SQL中删除某数据库所有trigger及sp   编写人:CC阿爸 2014-6-14 在日常SQL数据库的操作中,如何快速的删除所有trigger及sp呢 以下有三种方式可快速处理. --第一种 --事务的处理方法 Begin Transaction Begin try declare @SQL varchar(max) set @SQL='' select @SQL=@SQL+name+',' from sysobjects where xtype='TR' and name<>'Drop

sql中的Tran和C#中的TransactionScope介绍

sql 中的Tran 俩种写法 第一种写法 try catch: Begin TRY Begin Tran transaction DECLARE @ServiceOrderId INT SET @ServiceOrderId=73342 DECLARE @ErrorCount INT SET @ErrorCount = 0 --调整积分通订单状态 支付完成 UPDATE dbo.ServiceOrderNew SET OrderStatus = 2,UpdateDate = GETDATE()