--使用系统视图sys.messages查看系统中定义的错误
language_id =2052 china language_id =1033  english SELECT * FROM sys.messages WHERE message_id =66666

--1.创建自定义错误消息 添加到系统消息
EXEC sp_addmessage @msgnum = 66666,  --错误号
              @severity = 16,   --严重级别
              @msgtext ='procedure error;this is custom exception',
           --   @lang = 'us_english',  --语言版本
              @with_log= 'TRUE',     --记入日志,也可以在实际产生错误时指定是否记入日志
              @replace = 'replace'   --替换已经存在的错误号
              
go

--language_id =2052 china language_id =1033  english
--  SELECT TOP 100 * FROM sys.messages WHERE message_id =66666
EXEC sp_addmessage @msgnum = 66666, @severity = 16, @msgtext ='procedure error;this is custom exception',@lang = 'us_english', @with_log= 'FALSE',  @replace = 'replace'  

参考 如何在sqlserver 的函数或存储过程中抛出异常。 - 三小 - 博客园

使用方法

/*==============================================================================
// 存储过程: procedure_name
//------------------------------------------------------------------------------
// 描述:
//
//------------------------------------------------------------------------------
// 参数://------------------------------------------------------------------------------
// 返回值:  @code nvarchar(100) -返回是否成功  -1错误 , 0失败 ,1成功
//------------------------------------------------------------------------------
// 作者        日期:
//------------------------------------------------------------------------------
// 修改历史:
//   commit tran一航放到最后
//------------------------------------------------------------------------------
//==============================================================================*/
CREATE PROCEDURE dbo.C_SP_TESTTRAN@result int output, --成功 1; 失败 0@message nvarchar(100) output
AS
BEGINSET NOCOUNT ONbegin try --设置事物回滚机制,xact_abort为 on,回滚整个事务set xact_abort on begin tran yy DECLARE @res INTDECLARE @msg nvarchar(500),@outstr nvarchar(500)SET @res = 0SET @msg = ''IF OBJECT_ID('tempdb..#temp') IS NOT NULL DROP TABLE #temp IF @msg = '' BEGIN--执行语句SET @res =@@ROWCOUNTSET @msg = 'OK'endIF @res < 0BEGINSET @msg = '自定义异常'RAISERROR (66666, 16, 1);END--- 最后输出结果SELECT @msg AS msg , @res AS code end try
begin catchIF @@ERROR = 66666SET @outstr = @msgELSESET @outstr = ERROR_MESSAGE()if @@trancount>0rollback tran  yy;--- 最后输出结果SELECT @outstr AS res_msgEND CATCHif @@trancount>0commit tran  yy;SET NOCOUNT OFF;  END

SQLserver创建自定义异常及raiserror使用方法相关推荐

  1. SQLServer 创建全文索引(两种方法)

    1 全文索引向导添加 (1)选择表格右击-->全文索引-->定义全文索引 (2)选择索引 (3)选择索引列 (4)选择跟踪(自动) (5)选择目录.索引文件组合非索引字表 (6)定义填充计 ...

  2. oracle新建用户 数据库,oracle创建数据库和用户的方法

    这篇文章主要介绍了oracle创建数据库和用户的方法,mysql和sqlserver创建数据库可以直接通过create database "数据库名",而oracle创建数据库要对 ...

  3. sqlserver创建数据库的sql语句

    怎么将sqlserver数据库 导入mysql 有多种方法啊.介绍其中一种,使用mysql数据库的ODBC驱动. 1.安装mysql数据库的ODBC驱动,mysql-connector-odbc-3. ...

  4. win7计算机创建新用户,win7系统无法创建新用户的解决方法

    很多小伙伴都遇到过win7系统无法创建新用户的困惑吧,一些朋友看过网上零散的win7系统无法创建新用户的处理方法,并没有完完全全明白win7系统无法创建新用户是如何解决的,今天小编准备了简单的解决办法 ...

  5. mysql创建库几种方法_MySQL创建数据库的两种方法

    本文为大家分享了两种mysql创建数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 mysql 数据库. 所以 ...

  6. vscode 新建php模板,使用VSCode快速创建vue文件模版的方法介绍

    VSCode怎么自定义代码模版?下面本篇文章给大家介绍一下VSCode快速创建vue文件模版的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 修改位置 打开vscode首选项- ...

  7. android注册弹窗,Android开发之PopupWindow创建弹窗、对话框的方法详解

    本文实例讲述了Android开发之PopupWindow创建弹窗.对话框的方法.分享给大家供大家参考,具体如下: 简介: PopupWindow 可创建类似对话框风格的窗口 效果: 使用方法: 使用P ...

  8. MySQL查看、创建和删除索引的方法

    本文实例讲述了MySQL查看.创建和删除索引的方法.分享给大家供大家参考.具体如下: 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别 ...

  9. android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法

    Android的开发其实是比较灵活的,其实在安装了Android应用程序之后,会在桌面上自动创建快捷方式,接下来爱站技术频道小编将会介绍Android应用启动后自动创建桌面快捷方式的实现方法给大家,有 ...

最新文章

  1. 给你30秒的时间,你会用Excel制作出一个抽奖功能吗?
  2. 五子棋游戏设计VHDL语言
  3. CF198D Cube Snake(三维空间/增量构造)
  4. C语言 const 修饰变量 - C语言零基础入门教程
  5. 安费诺amphenol连接器_安费诺的Ellison谈信号完整性职业和他的免费开源PCB设计软??件...
  6. 钉钉项目任务怎么添加审批表单
  7. Vue笔记-Ant Design Vue构建前端连接后端WebSocket
  8. 今年蚊子有点慌!有人用100瓶花露水洗澡!
  9. 蔚来汽车发布声明:自称“前员工”造谣者已被起诉 查明并非前员工
  10. 各种算法和数据结构的复杂度
  11. 移除collection中元素的注意事项(应用collection.remove移除元素造成的错误)
  12. lambda 函数或者匿名函数(C++11)
  13. 一些基础的java编程代码
  14. 微信小程序展示弹窗的几种方式
  15. 个人作品 轻航 - 社区商城系统
  16. 电动汽车换电池要多少钱?各品牌电池更换费用大起底!
  17. 为什么设计稿是750px
  18. [SOLVED]Manjaro内核更新后,Nvidia驱动无法链接的问题
  19. 代码静态检查工具汇总
  20. java实训感想6000字_JAVA论文6000字:无线校园

热门文章

  1. 2450 Problem B 树的高度
  2. EMF介绍系列(二、从模型生成应用程序)
  3. 校验、AJAX与过滤器
  4. ABAP 真的会过时吗?聊聊 ABAP 的过去,现在和未来
  5. iOS实现9Patch图片调整(resizableImageWithCapInsets运用)
  6. uni map地图相关使用小计(多点标识,拖拽起点,地图画圆)
  7. javascript实现表单提交加密
  8. 淘宝的估算并发量公式
  9. 在不同领域中典型的计算机应用实例,浅析案例教学法在《计算机应用基础》教学中的应用...
  10. 安全技术学习笔记与分享6——web功能相关知识