存储过程和函数.ppt
《存储过程和函数.ppt》由会员分享,可在线阅读,更多相关《存储过程和函数.ppt(57页珍藏版)》请在三一办公上搜索。
1、批处理:有助于减少网络堵塞(network traffic)多个命令一起被提交和执行 批处理(batch)是一组一起提交给SQL Server执行的SQL语句在结尾使用GO命令以发送SQL语句到一个SQL Server实例当编译器读取到GO语句时,会把GO前面的语句当成一个批处理,并把这些语句打包发送给服务器。特点:批一次性的发送到SQL SERVER服务器执行,服务器将批处理语句编译成一个可执行单元,这种单元称为执行计划(execution plan)举例,创建批处理,说明:如果批处理中出现任何编译错误(compilation error),导致执行计划无法编译,从而批处理中的任何语句都无法
2、执行。如果编译完成,在运行中出错,(run-time error)则执行停止,出错之前执行的语句不受影响。,变量,使用变量存储值输入数据,中间值,最后结果使用PRINT语句显示用户定义的消息和变量的值如果变量不是字符串类型,要通过convert函数进行转换变量类型:全局变量(Global variables)记录服务器的活动状态是事先定义好的变量,不能由用户参与定义,只读用标记(举例),创建局部变量DECLARE variable_name data_typeDECLARE MyCounter int多个变量,用,隔开DECLARE LastName nvarchar(30),FirstNam
3、e nvarchar(20),State nchar(2)变量的作用域从声明变量的地方开始到声明变量的批处理或存储过程的结尾。,创建局部变量,第一次声明变量时,其值设置为 NULL 赋值的方法:SET 语句 SET avgscore=60.0SELECT 语句的选择列表中当前所引用值为变量赋值,为局部变量赋值,多行注释/*.*/单行注释-,注释,以下规则适用于批处理:CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其他语句组合使用。批处理必须以
4、CREATE 语句开始。所有跟在该批处理后的其他语句将被解释为第一个 CREATE 语句定义的一部分。不能在同一个批处理中更改表,然后引用新列。如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。,创建批处理的指导方针,课间思考,下面哪个语句可以被用在批处理中?1.CREATE FUNCTION 2.CREATE RULE 3.DECLARE,答案:3.DECLARE,允许你使用下面的结构来控制语句的流程:IFELSE 语句CASE 语句WHILE 语句,程序块语句,语法:BEGIN
5、 sql_statement|statement_block END 在处理时,整个语句块看作是一条SQL语句。,程序块语句Begin.end,IFELSE 语句:基于布尔表达式的结果执行特定的操作语法:IF boolean_expression sql_statement|statement_block ELSE boolean_expression sql_statement|statement_block让我们看看如何,使用结构(续),DECLARE Rate moneySELECT Rate=Rate FROM HumanResources.EmployeePayHistoryWHER
6、E EmployeeID=23IF Rate 15PRINT Review requiredELSEBEGINPRINT Review not required PRINT your rate=PRINT RateEND,CASE 语句:评估条件的一个列表并且返回可能结果中的一个语法:CASE WHEN boolean_expression THEN expressionWHEN boolean_expression THEN expression.ELSE expressionEND让我们看看如何,使用结构(续),SELECT EmployeeID,Marital Status=CASE M
7、aritalStatusWHEN M THEN MarriedWHEN S THEN SingleELSE Not specifiedENDFROM HumanResources.Employee,WHILE 语句:重复执行只要给定的条件为真使用BREAK 和 CONTINUE语句来控制WHILE循环中的语句语法:WHILE boolean_expression sql_statement|statement_blockBREAKsql_statement|statement_blockCONTINUEBREAK 导致从WHILE 循环中退出。将执行出现在 END 关键字(循环结束的标记)后面
8、的任何语句。CONTINUE 使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后面的任何语句。,使用结构(续),Example:(WHILE)WHILE(SELECT AVG(Rate)+1 from HumanResources.EmployeePayHistory)127BREAKELSECONTINUEEND,SQL Server 中的错误可以用以下两种方式处理:使用TRY-CATCH 结构 使用RAISERROR语句,处理错误和异常,在以下情形下使用TRY-CATCH 结构:Try 块包含一组T-SQL语句。如果TRY块的语句中发生任何错误,控制将传递给CATCH块。C
9、ATCH块包含另外一组语句,这些语句在错误发生时执行。BEGIN TRY sql_statement|statement_block END TRY BEGIN CATCH sql_statement|statement_block END CATCH;TRY-CATCH在以前的版本中是没有的。,处理错误和异常(续),在CATCH块中,可以使用以下的系统函数来确定关于错误的信息:ERROR_NUMBER()返回错误号。ERROR_MESSAGE()返回错误消息的完整文本。此文本包括为任何可替换参数(如长度、对象名称或时间)提供的值。ERROR_SEVERITY()返回错误严重性。ERROR_S
10、TATE()返回错误状态号。ERROR_LINE()返回导致错误的例程中的行号。ERROR_PROCEDURE()返回出现错误的存储过程或触发器的名称。,处理错误和异常(续),RAISERROR:被用于返回消息到商业程序使用与系统错误或数据库引擎产生的警告消息相同的格式也可能返回用户定义的错误消息让我们看看如何,处理错误和异常(续),错误由表维护。每一个错误代码都有相应的级别和描述。错误定义的级别从0到25。20以上的错误代表重大错误,通常意味着该错误会导致存储进程立刻终止,并且所有的客户连接都要重新初始化。非关键性错误只是禁止掉当前运行的程序行,并继续执行。,处理错误和异常(续),语法RAI
11、SERROR(msg_id msg_str,severity,state,argument,.n)WITH option,.n,课间思考,课间思考,哪个系统函数返回错误消息的文本当用在CATCH块中的时候?,答案:ERROR_MESSAGE(),课间思考,你如何在批处理中返回用户定义的错误消息?,答案:使用RAISERROR语句,批处理是一系列一起提交到服务器执行的SQL语句。你可以使用变量存储一个临时值。你可以使用PRINT语句来显示用户定义消息或屏幕上一个变量的内容。你可以在批处理中使用注释实体给代码写注释。你可以使用IFELSE语句以条件执行SQL语句。CASE语句求一系列条件的值并且返
12、回各种可能结果中的一个。你可以在批处理中使用WHILE语句以允许一系列T SQL语句重复执行只要给定条件为真。BREAK语句导致从WHILE循环中退出。,小结(续),小结(续),CONTINUE语句导致WHILE循环重启,忽略循环中CONTINUE语句后的任何语句。在批处理中处理错误的两种方法是:TRY-CATCH 结构RAISERROR 语句,存储过程:(stored procedurre)是数据库中保存的预编译的数据库对象批处理是临时的存储过程可以极大的减少网络需求 系统存储过程:sp_ 不要以 sp_ 为前缀创建任何存储过程。sp_ 前缀是 SQL Server 用来指定系统存储过程的,
13、存储过程,存储过程的优点:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。存储过程可以重复使用,可减少数据库开发人员的工作量 安全性高,可设定只有某此用户才具有对指定存储过程的使用权,存储过程,存储过程:使用CREATE PROCEDURE语句创建存储过程使用EXECUTE 语句实现存储过程语法:CREATE PROCEDURE proc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 过程 函数
链接地址:https://www.31ppt.com/p-6224399.html