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的用法(动态参数传值)的更多相关文章

  1. SQL Server 中 RAISERROR 的用法

    From : http://www.cnblogs.com/xugang/archive/2011/04/09/2010216.html   raiserror  是由单词 raise error 组 ...

  2. SQL Server 中 RAISERROR 的用法(转)

    在存储过程中进程会处理一些逻辑性的错误,如:将RMB转换为USD时,没有查询到想要的汇率 这个时候最好在存储过程中抛个异常,方便自己查找错误信息... 其语法如下: RAISERROR ( { msg ...

  3. SQL SERVER 中 GO 的用法2

    具体不废话了,请看下文详解. 1 2 3 4 5 6 7 8 9 10 use db_CSharp go  select *,  备注=case  when Grade>=90 then '成绩 ...

  4. SQL SERVER 中PatIndex的用法个人理解

    一般用法:PatIndex('%AAA%',‘BBBBBBBB’) 上句的意思是查找AAA在BBBBBBBB中的位置,从1开始计算,如果没有的话则返回0 其中%AAA%的用法和 SQL语句中like的 ...

  5. SQL Server中@@ROWCOUNT的用法

    SQL Server中@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型. 如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG. @@ROWCOUNT和@@ERROR变 ...

  6. 【转】sql server2005中raiserror的用法

    raiserror  是由单词 raise error 组成     raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ...

  7. sql server 中raiserror的使用

    server数据库中raiserror的作用就和asp.net中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror('错误的描述',错 ...

  8. SQL Server 中 GO 的用法(转)

    本科里学了那么多年SQL Server一直看到书上各种SQL语句中间夹杂着那么几个看似毫无意义的GO,看着就让人莫名,问老师,老师一般只会告诉你,不要理他,这个东西没用的.但是个性纠结并且有轻微强迫症 ...

  9. SQL SERVER 中 GO 的用法

    用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束.GO 不是 Transact-SQL 语句:而是可为 osql 和 isql 实用工具及 ...

随机推荐

  1. python bs4 BeautifulSoup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.bs4 模块的 BeautifulSoup 配合requests库可以写简单的爬虫. 安装 命令:pip in ...

  2. SPRINGBOOT注解最全详解(

    #     SPRINGBOOT注解最全详解(整合超详细版本)          使用注解的优势:               1.采用纯java代码,不在需要配置繁杂的xml文件           ...

  3. 用Nodejs遍历云存储文件

    起因 最近想要将云存储中的文件去重.因为有现成的Nodejs的API,所以打算用Nodejs实现此功能. 伪代码如下: scanDir = function(uri){ return new Prom ...

  4. zabbix3.4配置客户端配置

    上篇文章已经搭建好了zabbix_sever端,现在需要在192.168.200.200机器上配置监控项. 1.yum -y install zabbix zabbix-agent 2.配置zabbi ...

  5. delay timer的wrap around

    span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }.CodeMirror ...

  6. fork以后子进程输出cout无法输出

    fork以后子进程输出cout无法输出 fork以后子进程输出cout无法输出 子进程 fork  cout<<"sdfsf"<<endl; 内容无法输出控 ...

  7. 重装Zend Studio后如何恢复之前的设置

    Program Files (x86)\Zend\Zend Studio 10.0.0\configuration\.settings 这个目录下的文件备份下来,重装安装Zend Studio后覆盖到 ...

  8. cmds挖掘redolog

      select member from v$logfile;   exec dbms_logmnr.add_logfile(logfilename=>'+CMDSDG/cmds/onlinel ...

  9. <?php return array(

    <?php //test.php return array( 'name' => 'andy', 'sex' => 'male' ); ?> <?php $set = r ...

  10. SQL编程规范整理

    一.排版规范 1.代码缩进 对于判断.循环等处理使用字符缩进 缩进的空格最好不要使用TAB键 2.空格及换行 变量定义.相对独立的程序块等要单独成行,便于阅读 太长的程序(超过110列)应做换行处理 ...