存储过程和函数.ppt
《存储过程和函数.ppt》由会员分享,可在线阅读,更多相关《存储过程和函数.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、幻灯片幻灯片1(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据批处理:批处理:有助于减少网络堵塞有助于减少网络堵塞(network traffic)多个命令一起被提交和执行多个命令一起被提交和执行 批处理批处理(batch)是一组一起提交给是一组一起提交给SQL Server执执行的行的SQL语句语句在结尾使用在结尾使用GO命令以发送命令以发送SQL语句到一个语句到一个SQL Server实例实例当编译器读取到当编译器读取到GO语句时,会把语句时,会把GO前面的语前面的语句当成一个批处理,并把这些语句打包发送给句当成一个批处理,
2、并把这些语句打包发送给服务器。服务器。特点:批一次性的发送到特点:批一次性的发送到SQL SERVER服务器服务器执行,服务器将批处理语句编译成一个可执行执行,服务器将批处理语句编译成一个可执行单元,这种单元称为单元,这种单元称为执行计划执行计划(execution plan)举例举例创建批处理创建批处理幻灯片幻灯片2(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据说明:说明:如果批处理中出现任何编译错误如果批处理中出现任何编译错误(compilation error),导致执行计划无法编,导致执行计划无法编译,从而批处理中的任
3、何语句都无法执行。译,从而批处理中的任何语句都无法执行。如果编译完成,在运行中出错,如果编译完成,在运行中出错,(run-time error)则执行停止,出错之前执行的语句则执行停止,出错之前执行的语句不受影响。不受影响。幻灯片幻灯片3(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据变量变量使用变量存储值使用变量存储值输入数据,中间值,最后结果输入数据,中间值,最后结果使用使用PRINT语句显示用户定义的消息和变量的语句显示用户定义的消息和变量的值值如果变量不是字符串类型,要通过如果变量不是字符串类型,要通过convert函数
4、进函数进行转换行转换变量类型:变量类型:全局变量全局变量(Global variables)记录服务器的活动状态记录服务器的活动状态是事先定义好的变量,不能由用户参与定义,是事先定义好的变量,不能由用户参与定义,只读只读用用标记标记(举例)举例)幻灯片幻灯片4(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据创建局部变量创建局部变量DECLAREvariable_namedata_typeDECLAREMyCounterint多个变量,用,隔开多个变量,用,隔开DECLARELastNamenvarchar(30),FirstNa
5、menvarchar(20),Statenchar(2)变量的作用域从声明变量的地方开始到声明变变量的作用域从声明变量的地方开始到声明变量的批处理或存储过程的结尾。量的批处理或存储过程的结尾。创建局部变量创建局部变量幻灯片幻灯片5(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据第一次声明变量时,其值设置为第一次声明变量时,其值设置为NULL赋值的方法:赋值的方法:SET语句语句 SET avgscore=60.0SELECT语句的选择列表中当前所引用值为语句的选择列表中当前所引用值为变量赋值变量赋值 为局部变量赋值为局部变量赋值
6、幻灯片幻灯片6(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据多行注释多行注释/*.*/单行注释单行注释-注释注释幻灯片幻灯片7(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据以下规则适用于批处理:以下规则适用于批处理:CREATEDEFAULT、CREATEFUNCTION、CREATEPROCEDURE、CREATERULE、CREATETRIGGER和和CREATEVIEW语句不能在批处理中与其他语句组合语句不能在批处理中与其他语句组合使用。批处理必须以使用
7、。批处理必须以CREATE语句开始。所有跟在该批语句开始。所有跟在该批处理后的其他语句将被解释为第一个处理后的其他语句将被解释为第一个CREATE语句定义语句定义的一部分。的一部分。不能在同一个批处理中更改表,然后引用新列。不能在同一个批处理中更改表,然后引用新列。如果如果EXECUTE语句是批处理中的第一句,则不需要语句是批处理中的第一句,则不需要EXECUTE关键字。如果关键字。如果EXECUTE语句不是批处理中语句不是批处理中的第一条语句,则需要的第一条语句,则需要EXECUTE关键字。关键字。创建批处理的指导方针创建批处理的指导方针幻灯片幻灯片9(共(共31张)张)第第11章章Ver.
8、1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据允许你使用下面的结构来控制语句的流程:允许你使用下面的结构来控制语句的流程:IFELSE 语句语句CASE 语句语句WHILE 语句语句程序块语句程序块语句幻灯片幻灯片10(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据语法:语法:BEGINsql_statement|statement_blockEND在处理时,整个语句块看作是一条在处理时,整个语句块看作是一条SQL语句。语句。程序块语句程序块语句Begin.end幻灯片幻灯片11(共(共31张)张)第
9、第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据IFELSE 语句:语句:基于布尔表达式的结果执行特定的操作基于布尔表达式的结果执行特定的操作语法:语法:IF boolean_expression sql_statement|statement_block ELSE boolean_expression sql_statement|statement_block让我们看看如何让我们看看如何使用结构(续)使用结构(续)幻灯片幻灯片12(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据DEC
10、LARE Rate moneySELECT Rate=Rate FROM HumanResources.EmployeePayHistoryWHERE EmployeeID=23IF Rate 15PRINT Review requiredELSEBEGINPRINT Review not required PRINT your rate=PRINT RateEND幻灯片幻灯片13(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据CASE 语句:语句:评估条件的一个列表并且返回可能结果中的一个评估条件的一个列表并且返回可能结果中的
11、一个语法:语法:CASE WHEN boolean_expression THEN expressionWHEN boolean_expression THEN expression.ELSE expressionEND让我们看看如何让我们看看如何使用结构(续)使用结构(续)幻灯片幻灯片14(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据SELECT EmployeeID,Marital Status=CASE MaritalStatusWHEN M THEN MarriedWHEN S THEN SingleELSE Not
12、specifiedENDFROM HumanResources.Employee幻灯片幻灯片15(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据WHILE 语句:语句:重复执行只要给定的条件为真重复执行只要给定的条件为真使用使用BREAK 和和 CONTINUE语语句来控制句来控制WHILE循循环环中的中的语语句句语法:语法:WHILE boolean_expression sql_statement|statement_blockBREAKsql_statement|statement_blockCONTINUEBREAK导致
13、从导致从WHILE循环中退出。将执行出现在循环中退出。将执行出现在END关键字关键字(循环结束的标记)后面的任何语句。(循环结束的标记)后面的任何语句。CONTINUE使使WHILE循环重新开始执行,忽略循环重新开始执行,忽略CONTINUE关键字关键字后面的任何语句。后面的任何语句。使用结构(续)使用结构(续)幻灯片幻灯片16(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据Example:(WHILE)WHILE(SELECT AVG(Rate)+1 from HumanResources.EmployeePayHistory
14、)127BREAKELSECONTINUEEND幻灯片幻灯片17(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据SQL Server 中的错误可以用以下两种方式处理:中的错误可以用以下两种方式处理:使用使用TRY-CATCH 结构结构 使用使用RAISERROR语句语句处理错误和异常处理错误和异常幻灯片幻灯片18(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据在以下情形下使用在以下情形下使用TRY-CATCH 结构:结构:Try 块包含一组块包含一组T-SQL语句
15、。如果语句。如果TRY块的语句中发块的语句中发生任何错误,控制将传递给生任何错误,控制将传递给CATCH块。块。CATCH块包含另外一组语句,这些语句在错误发生块包含另外一组语句,这些语句在错误发生时执行。时执行。BEGINTRYsql_statement|statement_blockENDTRYBEGINCATCHsql_statement|statement_blockENDCATCH;TRY-CATCH在以前的版本中是没有的。在以前的版本中是没有的。处理错误和异常(续)处理错误和异常(续)幻灯片幻灯片19(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 200
16、5 查询和管理数据查询和管理数据在在CATCH块中,可以使用以下的系统函数来确块中,可以使用以下的系统函数来确定关于错误的信息:定关于错误的信息:ERROR_NUMBER()返回错误号。返回错误号。ERROR_MESSAGE()返回错误消息的完整文本。此返回错误消息的完整文本。此文本包括为任何可替换参数(如长度、对象名称或时文本包括为任何可替换参数(如长度、对象名称或时间)提供的值。间)提供的值。ERROR_SEVERITY()返回错误严重性。返回错误严重性。ERROR_STATE()返回错误状态号。返回错误状态号。ERROR_LINE()返回导致错误的例程中的行号。返回导致错误的例程中的行号
17、。ERROR_PROCEDURE()返回出现错误的存储过程返回出现错误的存储过程或触发器的名称。或触发器的名称。处理错误和异常(续)处理错误和异常(续)幻灯片幻灯片20(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据RAISERROR:被用于返回消息到商业程序被用于返回消息到商业程序使用与系统错误或数据库引擎产生的警告消息使用与系统错误或数据库引擎产生的警告消息相同的格式相同的格式也可能返回用户定义的错误消息也可能返回用户定义的错误消息让我们看看如何让我们看看如何处理错误和异常(续)处理错误和异常(续)幻灯片幻灯片21(共(共3
18、1张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据错误由错误由表维护。每一个错误代码都有相应的表维护。每一个错误代码都有相应的级别和描述。级别和描述。错误定义的级别从错误定义的级别从0到到25。20以上的错误代以上的错误代表重大错误,通常意味着该错误会导致存储表重大错误,通常意味着该错误会导致存储进程立刻终止,并且所有的客户连接都要重进程立刻终止,并且所有的客户连接都要重新初始化。新初始化。非关键性错误只是禁止掉当前运行的程序行,非关键性错误只是禁止掉当前运行的程序行,并继续执行。并继续执行。处理错误和异常(续)处理错误和异常(续)幻灯片幻
19、灯片22(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据语法语法RAISERROR(msg_idmsg_str,severity,state,argument,.n)WITHoption,.n幻灯片幻灯片23(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据课间思考课间思考msg_id定制消息的错误代码。定制消息的错误代码。.RAISERROR接受任何大于接受任何大于13000的的数字数字,但是定制信息但是定制信息msg_id要大于等于要大于等于50000。msg_
20、str定制信息的文本。定制信息的文本。severity定制信息的级别。从定制信息的级别。从0to25,19-25是重大错误代码。是重大错误代码。state呈现导致错误的状态,不在呈现导致错误的状态,不在SQL内部使用。内部使用。argument定义在错误信息中的可以替换的值。定义在错误信息中的可以替换的值。WITH有三个选项有三个选项:WITHLOG纪录错误。只能用于级别高于纪录错误。只能用于级别高于19的错误。的错误。WITHNOWAIT将错误立刻发送到客户端将错误立刻发送到客户端WITHSETERRORsetsERRORtothevaluespecifiedbymsg_id,regardl
21、essofseveritylevel.幻灯片幻灯片24(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据课间思考课间思考哪个系统函数返回错误消息的文本当用在哪个系统函数返回错误消息的文本当用在CATCH块中的时候块中的时候?答案:答案:ERROR_MESSAGE()幻灯片幻灯片25(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据课间思考课间思考你如何在批处理中返回用户定义的错误消息你如何在批处理中返回用户定义的错误消息?答案:答案:使用使用RAISERROR语句语句
22、幻灯片幻灯片26(共(共31张)张)第第11章章Ver.1.0使用使用SQL Server 2005 查询和管理数据查询和管理数据批批处处理是一系列一起提交到服理是一系列一起提交到服务务器器执执行的行的SQL语语句。句。你可以使用你可以使用变变量存量存储储一个一个临时值临时值。你可以使用你可以使用PRINT语句来显示用户定义消息或屏幕上一语句来显示用户定义消息或屏幕上一个变量的内容。个变量的内容。你可以在批处理中使用注释实体给代码写注释。你可以在批处理中使用注释实体给代码写注释。你可以使用你可以使用IFELSE语句以条件执行语句以条件执行SQL语句。语句。CASE语句求一系列条件的值并且返回各
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 过程 函数
限制150内