sql server中raiserror的用法(动态参数传值)
1、raiserrror定义: 返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,
或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。
2、raiserrror语法
RAISERROR ( { msg_id | msg_str } { , severity , state }
3、raiserrror用法
--不带动态参数返回错误信息
raiserror('参数有误,入库数量不能为0',,) ----带动态参数返回错误信息
raiserror('参数%s[%d]有误,%s',,,'@Num2',@Num2,@msg)
4、简单例子
1)创建一个加减乘除算法的存储过程
/***********************
**功能:进行加减乘除计算
**参数:@Num1(参数1)、@Num2(参数2)
@opeType(计算类型)、@num3(返回结果)
***************************/
create procedure pro_CalculateNum
@Num1 int,
@Num2 int,
@opeType int,
@num3 decimal output
as
begin
declare @msg varchar(50)
--进行加法运算
if @opeType=1
begin
set @num3 = @Num1+@Num2;
--打印结果
print @num3;
end
--进行减法运算
if @opeType=2
begin
set @num3 = @Num1-@Num2;
--打印结果
print @num3;
end
--进行乘法运算
if @opeType=3
begin
set @num3 = @Num1*@Num2;
--打印结果
print @num3;
end
--进行除法运算
if @opeType=4
begin
if @Num2=0
begin
set @msg='进行除法,遇到以零作除数错误';
--抛出自定义错误信息
raiserror('参数%s[%d]有误,%s',16,1,'@Num2',@Num2,@msg)
end
else
begin
set @num3 = @Num1/@Num2;
--打印结果
print @num3;
end
end
--进行取模%运算
if @opeType=5
begin
if @Num2=0
begin
set @msg='进行取模,遇到以零作除数错误';
--抛出自定义错误信息
raiserror('参数%s[%d]有误,%s',16,1,'@Num2',@Num2,@msg)
end
else
begin
set @num3 = @Num1%@Num2;
--打印结果
print @num3;
end
end
end;
2)进行存储过程调用(除数为0时,我们把错误重新自定义了)
--调用存储过程(除数为0)--
declare @result decimal
exec pro_CalculateNum 12,0,4,@result output
调用结果
3)进行存储过程调用(除数不为0)
--调用存储过程(除数不为0)--
declare @result decimal
exec pro_CalculateNum 12,3,4,@result output
调用结果
5、raiserrror符号
详细介绍,请参考网址:
https://www.bbsmax.com/A/A2dmVpmqze/
sql server中raiserror的用法(动态参数传值)的更多相关文章
- SQL Server 中 RAISERROR 的用法
From : http://www.cnblogs.com/xugang/archive/2011/04/09/2010216.html raiserror 是由单词 raise error 组 ...
- SQL Server 中 RAISERROR 的用法(转)
在存储过程中进程会处理一些逻辑性的错误,如:将RMB转换为USD时,没有查询到想要的汇率 这个时候最好在存储过程中抛个异常,方便自己查找错误信息... 其语法如下: RAISERROR ( { msg ...
- SQL SERVER 中 GO 的用法2
具体不废话了,请看下文详解. 1 2 3 4 5 6 7 8 9 10 use db_CSharp go select *, 备注=case when Grade>=90 then '成绩 ...
- SQL SERVER 中PatIndex的用法个人理解
一般用法:PatIndex('%AAA%',‘BBBBBBBB’) 上句的意思是查找AAA在BBBBBBBB中的位置,从1开始计算,如果没有的话则返回0 其中%AAA%的用法和 SQL语句中like的 ...
- SQL Server中@@ROWCOUNT的用法
SQL Server中@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型. 如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG. @@ROWCOUNT和@@ERROR变 ...
- 【转】sql server2005中raiserror的用法
raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ...
- sql server 中raiserror的使用
server数据库中raiserror的作用就和asp.net中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror('错误的描述',错 ...
- SQL Server 中 GO 的用法(转)
本科里学了那么多年SQL Server一直看到书上各种SQL语句中间夹杂着那么几个看似毫无意义的GO,看着就让人莫名,问老师,老师一般只会告诉你,不要理他,这个东西没用的.但是个性纠结并且有轻微强迫症 ...
- SQL SERVER 中 GO 的用法
用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束.GO 不是 Transact-SQL 语句:而是可为 osql 和 isql 实用工具及 ...
随机推荐
- python bs4 BeautifulSoup
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.bs4 模块的 BeautifulSoup 配合requests库可以写简单的爬虫. 安装 命令:pip in ...
- SPRINGBOOT注解最全详解(
# SPRINGBOOT注解最全详解(整合超详细版本) 使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 ...
- 用Nodejs遍历云存储文件
起因 最近想要将云存储中的文件去重.因为有现成的Nodejs的API,所以打算用Nodejs实现此功能. 伪代码如下: scanDir = function(uri){ return new Prom ...
- zabbix3.4配置客户端配置
上篇文章已经搭建好了zabbix_sever端,现在需要在192.168.200.200机器上配置监控项. 1.yum -y install zabbix zabbix-agent 2.配置zabbi ...
- delay timer的wrap around
span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror ...
- fork以后子进程输出cout无法输出
fork以后子进程输出cout无法输出 fork以后子进程输出cout无法输出 子进程 fork cout<<"sdfsf"<<endl; 内容无法输出控 ...
- 重装Zend Studio后如何恢复之前的设置
Program Files (x86)\Zend\Zend Studio 10.0.0\configuration\.settings 这个目录下的文件备份下来,重装安装Zend Studio后覆盖到 ...
- cmds挖掘redolog
select member from v$logfile; exec dbms_logmnr.add_logfile(logfilename=>'+CMDSDG/cmds/onlinel ...
- <?php return array(
<?php //test.php return array( 'name' => 'andy', 'sex' => 'male' ); ?> <?php $set = r ...
- SQL编程规范整理
一.排版规范 1.代码缩进 对于判断.循环等处理使用字符缩进 缩进的空格最好不要使用TAB键 2.空格及换行 变量定义.相对独立的程序块等要单独成行,便于阅读 太长的程序(超过110列)应做换行处理 ...