大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > SQL存储过程详细基础入门

SQL存储过程详细基础入门(3)

关键词:SQL存储过程详细基础入门  阅读(2540) 赞(32)

[摘要]本文是SQL存储过程详细基础入门教程,从存储过程的基本概念讲起,再讲到存储过程的实现和管理,步步深入,让您更好地理解SQL存储过程。

语法:

PRINT 'any ASCII text' | @local_variable | @@FUNCTION | string_expr

参数说明:

l          'any ASCII text':一个文本字符串。

l          @local_variable:任意有效的字符数据类型变量。@local_variable必须是charvarchar数据类型。

l          @@FUNCTION:是返回字符串结果的函数。@@FUNCTION必须是charvarchar数据类型。

l          string_expr:是返回字符串的表达式。可包含串联的字面值和变量。消息字符串最长可达8000个字符,超过8000个的任何字符均被截断。

例如创建带反馈语句的存储过程loving40SQL语句如下。

use db_student
CREATE PROCEDURE loving40
AS
if EXISTS(Select * from course where 课程内容='loving')
Print 'course数据表中有信息。' --表示查询结果至少有一条记录
else
Print 'course数据表中无信息。' --没有查询到任何记录
示例:执行带反馈语句的存储过程
执行loving40存储过程。SQL语句如下。
use db_student
exec loving40

运行的结果如图所示。

Print语句反馈带参数的执行结果。

例如创建用print语句反馈带参数的执行结果。SQL语句如下。

use db_student
--创建存储过程
CREATE PROCEDURE loving50
@课程内容 char(10)
AS
if EXISTS(Select * from course where (课程内容=@课程内容)and(学分<6))
Print Rtrim(@课程内容)+'学分比较低' --表示查询结果至少有一条记录
else
Print Rtrim(@课程内容)+'学分比较高' --没有查询到任何记录
示例:执行的反馈语句是用print语句输出的存储过程
执行存储过程loving50,用print语句反馈带参数的执行结果。SQL语句如下。
use db_student
--执行存储过程
EXEC loving50 '歌曲类'
运行的结果如图所示。



2RaisError函数

返回用户定义的错误信息并设置系统标志。当记录发生错误时,通过使用该函数,客户端可以从sysmessages表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。

语法:

RAISERROR ({ msg_id | msg_str } { , severity , state }
[ , argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]

参数说明:

l          msg_id:存储于sysmessages表中用户定义的错误信息。用户定义错误信息的错误号应大于50,000。由特殊消息产生的错误是第50,000号。

l          msg_str:是一条特殊消息,其格式与C语言中使用的PRINTF格式样式相似。此错误信息最多可包含400个字符。如果该信息包含的字符超过400个,则只能显示前397个并将添加一个省略号以表示该信息已被截断。所有特定消息的标准消息ID14,000

msg_str支持的格式为:% [[flag] [width] [precision] [{h | l}]] type

msg_str中使用的参数如下:

flag:用于确定用户定义的错误信息的间距和对齐的代码,其取值如表1所示。

width:定义最小宽度的整数。星号(*)允许precision确定宽度。

precision:是输出字段最多输出的字符数,或为整数值输出的最小小数位数。星号(*)允许argument确定精度。

{h | l} type与字符类型dioxXu一起使用,用于创建short inth)或long intl)类型的值。字符类型如表2所示。


l          Severity:用户定义的与消息关联的严重级别。用户可以使用从018之间的严重级别。19~25之间的严重级别只能由sysadmin固定服务器角色成员使用。若要使用19~25之间的严重级别,必须选择WITH LOG选项。

注意:20~25之间的严重级别被认为是致命的。如果遇到致命的严重级别,客户端连接将在收到消息后终止,并将错误记入错误日志和应用程序日志。

l          State1~127的任意整数,表示有关错误调用状态的信息。state的负值默认为1

l          Argument:是用于取代在msg_str中定义的变量或取代对应于msg_id的消息的参数。可以有0或更多的替代参数;替代参数的总数不能超过20个。每个替代参数可以是局部变量或int1int2int4charvarcharbinaryvarbinary数据类型。不支持其它数据类型。

l          Option:错误的自定义选项。Option的取值如表3所示。



相关评论