sql server中raiserror的用法(动态参数传值)

sql server中raiserror的用法(动态参数传值)

1、raiserrror定义: 返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,

或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。

2、raiserrror语法

RAISERROR ( { msg_id | msg_str } { , severity , state }

3、raiserrror用法

--不带动态参数返回错误信息

raiserror('参数有误,入库数量不能为0',16,1)

----带动态参数返回错误信息

raiserror('参数%s[%d]有误,%s',16,1,'@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/

相关推荐

个体职工养老保险如何买
365在线官网下载

个体职工养老保险如何买

📅 07-29 👁️ 9171
游戏合集:SCP
正规det365登录网站

游戏合集:SCP

📅 09-29 👁️ 4312
32位操作系统盘点:探索现代计算机的根基
365平台怎么增加赢的几率

32位操作系统盘点:探索现代计算机的根基

📅 02-07 👁️ 3243
HIFIDIY论坛
365平台怎么增加赢的几率

HIFIDIY论坛

📅 07-28 👁️ 7807