SQLserver创建自定义异常及raiserror使用方法
--使用系统视图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使用方法相关推荐
- SQLServer 创建全文索引(两种方法)
1 全文索引向导添加 (1)选择表格右击-->全文索引-->定义全文索引 (2)选择索引 (3)选择索引列 (4)选择跟踪(自动) (5)选择目录.索引文件组合非索引字表 (6)定义填充计 ...
- oracle新建用户 数据库,oracle创建数据库和用户的方法
这篇文章主要介绍了oracle创建数据库和用户的方法,mysql和sqlserver创建数据库可以直接通过create database "数据库名",而oracle创建数据库要对 ...
- sqlserver创建数据库的sql语句
怎么将sqlserver数据库 导入mysql 有多种方法啊.介绍其中一种,使用mysql数据库的ODBC驱动. 1.安装mysql数据库的ODBC驱动,mysql-connector-odbc-3. ...
- win7计算机创建新用户,win7系统无法创建新用户的解决方法
很多小伙伴都遇到过win7系统无法创建新用户的困惑吧,一些朋友看过网上零散的win7系统无法创建新用户的处理方法,并没有完完全全明白win7系统无法创建新用户是如何解决的,今天小编准备了简单的解决办法 ...
- mysql创建库几种方法_MySQL创建数据库的两种方法
本文为大家分享了两种mysql创建数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 mysql 数据库. 所以 ...
- vscode 新建php模板,使用VSCode快速创建vue文件模版的方法介绍
VSCode怎么自定义代码模版?下面本篇文章给大家介绍一下VSCode快速创建vue文件模版的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 修改位置 打开vscode首选项- ...
- android注册弹窗,Android开发之PopupWindow创建弹窗、对话框的方法详解
本文实例讲述了Android开发之PopupWindow创建弹窗.对话框的方法.分享给大家供大家参考,具体如下: 简介: PopupWindow 可创建类似对话框风格的窗口 效果: 使用方法: 使用P ...
- MySQL查看、创建和删除索引的方法
本文实例讲述了MySQL查看.创建和删除索引的方法.分享给大家供大家参考.具体如下: 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别 ...
- android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法
Android的开发其实是比较灵活的,其实在安装了Android应用程序之后,会在桌面上自动创建快捷方式,接下来爱站技术频道小编将会介绍Android应用启动后自动创建桌面快捷方式的实现方法给大家,有 ...
最新文章
- 给你30秒的时间,你会用Excel制作出一个抽奖功能吗?
- 五子棋游戏设计VHDL语言
- CF198D Cube Snake(三维空间/增量构造)
- C语言 const 修饰变量 - C语言零基础入门教程
- 安费诺amphenol连接器_安费诺的Ellison谈信号完整性职业和他的免费开源PCB设计软??件...
- 钉钉项目任务怎么添加审批表单
- Vue笔记-Ant Design Vue构建前端连接后端WebSocket
- 今年蚊子有点慌!有人用100瓶花露水洗澡!
- 蔚来汽车发布声明:自称“前员工”造谣者已被起诉 查明并非前员工
- 各种算法和数据结构的复杂度
- 移除collection中元素的注意事项(应用collection.remove移除元素造成的错误)
- lambda 函数或者匿名函数(C++11)
- 一些基础的java编程代码
- 微信小程序展示弹窗的几种方式
- 个人作品 轻航 - 社区商城系统
- 电动汽车换电池要多少钱?各品牌电池更换费用大起底!
- 为什么设计稿是750px
- [SOLVED]Manjaro内核更新后,Nvidia驱动无法链接的问题
- 代码静态检查工具汇总
- java实训感想6000字_JAVA论文6000字:无线校园