`
zheyiw
  • 浏览: 1015318 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于存储过程中RAISERROR的使用

    博客分类:
  • SQL
SQL 
阅读更多


我们一般用这种方式抛出异常:
RAISERROR (@ErrorMsg, 16, 1)

1, 如果我们在存储过程里面加了Try Catch模块, 那么执行到RAISERROR时会直接跳转到Catch模块里面.
例如:
DECLARE @ErrorMsg VARCHAR(2000)

BEGIN TRY
  SELECT 1

  RAISERROR ('报错了', 16, 1)

  SELECT 2
END TRY
BEGIN CATCH
  SELECT @ErrorMsg = ERROR_MESSAGE()
  RAISERROR (@ErrorMsg, 16, 1)
END CATCH

上述代码不会执行Select 2

2, 如果我们在存储过程里面没有加Try Catch模块.
例如:
  SELECT 1

  RAISERROR ('报错了', 16, 1)

  SELECT 2

上述代码执行顺序是:
Select 1
抛出异常
Select 2

这里的 Select 2 在绝大多数很多情况下是不需要执行的,
所以我们可以这样写
  SELECT 1

  RAISERROR ('报错了', 16, 1)
  RETURN

  SELECT 2


但是我们推荐尽量使用Try Catch模块
分享到:
评论

相关推荐

    存储过程中RAISERROR()函数

    存储过程中RAISERROR()函数存储过程中RAISERROR()函数存储过程中RAISERROR()函数存储过程中RAISERROR()函数存储过程中RAISERROR()函数存储过程中RAISERROR()函数

    VB6.0 调用存储过程的例子(方法一)

    在Visual Basic 6.0中,调用数据库中的存储过程是一项非常实用的功能。本篇将详细解释一个具体的示例,通过VB6.0来调用一个名为`ADOTestRPE`的存储过程,并测试其返回值、输入参数以及输出参数。 #### 一、准备工作...

    T-SQL强化(RAISERROR详解,SQL 注入, OUTPUT , WITH RECOMPILE ,sp_addmessage

    本篇将深入探讨五个关键知识点:RAISERROR的使用,SQL注入的防范,OUTPUT参数的应用,WITH RECOMPILE选项的作用以及sp_addmessage存储过程的使用。 首先,RAISERROR是T-SQL中的一个错误处理函数,用于在执行过程中...

    SQL Server自定义异常raiserror使用示例

    这些异常通常在存储过程或触发器中使用,以便在遇到预期之外的情况时,能够优雅地处理错误,如回滚事务、释放资源等。本文将深入探讨如何使用`raiserror`函数来抛出自定义异常。 `raiserror`是SQL Server中用于生成...

    oracle-存储过程.ppt

    1. 输入参数:可以在存储过程中使用输入参数,以便在执行存储过程时传递参数。 2. 输出参数:可以在存储过程中使用输出参数,以便将结果返回给调用方。 处理错误信息: 1. 使用 TRY...CATCH 语句来捕捉和处理错误...

    SQL存储过程,触发器讲解及过程中要注意的内容

    3. **事务管理**:在存储过程中使用适当的事务管理,确保数据一致性。不正确的事务边界可能导致数据不一致。 4. **避免长时间运行**:长时间运行的存储过程或触发器可能会阻塞其他操作,影响系统性能。优化查询和...

    SQL Server 中 RAISERROR 的用法详细介绍

    SQL Server中的`RAISERROR`是一个非常重要的错误处理函数,它允许程序员或DBA自定义并抛出错误信息。...在编写复杂的SQL脚本或存储过程时,熟练使用`RAISERROR`能显著提高错误处理的效率和代码的可读性。

    sql存储过程初学者个人笔记

    存储过程中还可以使用`RAISERROR`语句来抛出异常或错误信息: ```sql RAISERROR('发生了一个错误', 16, 1); ``` - **'发生了一个错误'**:错误消息文本。 - **16**:错误的严重级别(范围为1到19)。 - **1**:错误...

    SQL Server 2000存储过程手册

    7. **错误处理**:如何在存储过程中使用TRY...CATCH结构捕获和处理运行时错误,以及RAISERROR和THROW语句的使用。 8. **动态SQL**:讲解如何在存储过程中嵌入动态SQL语句,以实现更灵活的逻辑处理。 9. **视图和...

    DELPHI 存储过程.txt

    本文档通过具体的示例介绍了如何在Delphi中使用存储过程。首先在SQL Server中创建了一个表`test`以及一个存储过程`myInsert`,然后在Delphi中通过ADO组件实现了对该存储过程的调用,并展示了如何通过按钮触发存储...

    数据可存储过程和触发器定义和使用

    在实验中,你需要掌握如何使用Transact-SQL(T-SQL)创建和执行存储过程,例如: ```sql CREATE PROCEDURE procedure_name @param1 datatype, @param2 datatype AS BEGIN -- SQL语句 END; ``` 然后通过`EXEC ...

    实验七存储过程与触发器.pdf

    下面是关于存储过程和触发器的知识点: 一、创建存储过程 创建存储过程需要使用CREATE PROCEDURE语句,例如: ```sql CREATE PROCEDURE proc_1 AS BEGIN SELECT * FROM 学生表; END; ``` 上面的存储过程名为proc_...

    存储过程编写笔试试题.doc

    本题目是一个关于存储过程编写的笔试题目,要求考生根据提供的数据表结构,设计一个存储过程来更新商品售价表(Price)中的价格信息,基于调价单(Update)和调价单明细(UpdateItem)中的数据。 首先,我们需要...

    在ASP.NET 2.0中操作数据:调试存储过程(源码)

    提供的压缩包文件"ASPNET_Data_Tutorial_74_CS"可能包含一个示例项目,展示如何在ASP.NET 2.0中使用C#代码调试存储过程。通过研究源码,你可以更好地理解实际操作中的步骤和技巧。 总结来说,调试存储过程是ASP...

    SQL Server存储过程模板

    存储过程是预先编译并存储在数据库中的SQL代码块。使用存储过程可以提高应用程序性能,并有助于保持数据的一致性和完整性。本模板提供了一个标准化的框架来创建或修改SQL Server存储过程,这有助于提高代码的可读性...

    数据库系统概论——存储过程和触发器.ppt

    以上是关于“数据库系统概论——存储过程和触发器.ppt”文档中涉及的主要知识点,包括Transact-SQL编程基础、事务管理、游标、存储过程和触发器的详细介绍。这些内容对于理解和操作SQL Server数据库至关重要,能够...

    SQL server2008存储过程与触发器

    在提供的"第一次大作业.doc"可能包含了关于如何编写和使用存储过程和触发器的实验说明,而"SQLQuery1.sql"可能包含了一些示例查询或存储过程的代码。通过深入学习这些文档和代码,你可以更深入地理解SQL Server 2008...

    存储过程及触发器实验报告.doc

    存储过程是一种预编译的SQL语句集,存储在数据库服务器中,以便于future使用。存储过程可以接受输入参数,执行某些操作,返回结果,并且可以重复使用。存储过程的优点是可以提高数据库的性能、提高数据的安全性、...

    存储过程触发器和函数PPT课件.pptx

    存储过程在SQL Server中使用Transact-SQL语言编写,一旦被创建并存储在数据库服务器中,就可以通过调用其名称来执行。存储过程允许声明变量,接受输入参数,并能返回执行状态值。它们可以提高程序设计的效率,通过...

Global site tag (gtag.js) - Google Analytics