触发器与存储过程课件.ppt

触发器与存储过程课件.ppt

ID:56963144

大小:114.00 KB

页数:63页

时间:2020-07-22

触发器与存储过程课件.ppt_第1页
触发器与存储过程课件.ppt_第2页
触发器与存储过程课件.ppt_第3页
触发器与存储过程课件.ppt_第4页
触发器与存储过程课件.ppt_第5页
资源描述:

《触发器与存储过程课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章触发器与存储过程5.1SQLSERVER编程逻辑SQLSERVER编程逻辑主要指在触发器与存储过程中进行编程的方法,SQLSERVER提供了流程控制语句用以实现程序的流程,还提供了游标用来处理多行记录。5.1.1流程控制语句IF...ELSE条件分支语句用IF...ELSE可以实现有条件的分支,如果条件满足(布尔表达式返回TRUE时),则在IF关键字及其条件之后执行Transact-SQL语句。可选的ELSE关键字引入备用的Transact-SQL语句,当不满足IF条件时(布尔表达式返回FALSE),就执行这个语句。语法如下:IFBoolean_expression{sql_

2、statement

3、statement_block}[ELSE{sql_statement

4、statement_block}]5.1.1流程控制语句例程5.1:如果合同号为“101”的合同总金额大于10000元,则显示“该合同金额超过1万元”,否则显示“该合同金额不足1万元”。IF(SELECTContractVolumeFROMContractWHEREContractID=’101’)>10000PRINT'该合同金额超过1万元'ELSEPRINT'该合同金额不足1万元'5.1.1流程控制语句例程5.2:使用多个IF语句嵌套,查询合同号为“101”的合同,当合同总金额大于100

5、00元,则显示“该合同金额超过1万元”,反之如果签定日期在2002年1月1日之后,则显示“该合同额不足1万元,来源于2002年之后”,否则显示“该合同额不足1万元,来源于2002年之前”。IF(SELECTContractVolumeFROMContractWHEREContractID=’101’)>10000PRINT'该合同金额超过1万元'ELSEIF(SELECTContractVolumeFROMContractWHEREContractID=’101’)<10000AND(SELECTSignDateFROMContractWHEREContractID=’101’)>

6、’2002-01-01’PRINT'该合同额不足1万元,来源于2002年之后'ELSEPRINT'该合同额不足1万元,来源于2002年之前'5.1.1流程控制语句用BEGIN...END定义语句块用BEGIN...END可以定义一组Transact-SQL语句,使得SQLSERVER可以按顺序分别执行。通常用在存储过程或触发器中,语法如下:BEGIN{sql_statement

7、statement_block}END其中BEGIN...END语句块可以嵌套。5.1.1流程控制语句例程5.3:在单位信息表的触发器中的一段语句块如下:BEGINROLLBACKTRANSACTIONPR

8、INT'不能删除当前单位!'END5.1.1流程控制语句用WHILE语句实现循环用WHILE可以实现循环操作,只要指定的条件为真,就重复执行语句。可以使用BREAK和CONTINUE关键字在循环内部控制WHILE循环中语句的执行。语法如下:WHILEBoolean_expression{sql_statement

9、statement_block}[BREAK]{sql_statement

10、statement_block}[CONTINUE]5.1.1流程控制语句例程5.4:简单WHILE语句,打印从1到10的整数DECLARE@iINTEGERDECLARE@iMAXINTEGER

11、SET@iMAX=10SET@i=1WHILE@i<=@iMAXBEGINPRINT@iSET@i=@i+1END例程5.5:判断一个数是否素数DECLARE@iINTEGERDECLARE@iTestINTEGERSET@iTest=59SET@i=2WHILE@i<@iTestBEGINIF@iTest%@i=0BEGINPRINT'该数不是素数'BREAKENDSET@i=@i+1IF@Itest=@iPRINT'该数是素数'END5.1.1流程控制语句GOTO语句GOTO语句将执行流变更到标签处,跳过GOTO之后的Transact-SQL语句,在标签处继续处理。GOTO语句

12、和标签可在存储过程、批处理或语句块中的任何位置使用。GOTO语句可嵌套使用。5.1.1流程控制语句例程5.6:判断一个数是否素数,用GOTO语句来实现DECLARE@iINTEGERDECLARE@iTestINTEGERSET@iTest=58SET@i=2goto_Loop:BEGINIF@iTest%@i=0BEGINPRINT'该数不是素数'GOTOloop_OverENDSET@i=@i+1IF@Itest=@iPRINT'该数是素数'ENDIF@i<@iT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。